I did a search with LIKE
and REGEXP
a special character "ñ", the results here:
CREATE TABLE IF NOT EXISTS `testCharacter` (
`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`name2` char(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`name3` text COLLATE utf8_unicode_ci
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=4 ;
INSERT INTO `testCharacter` (`id`, `name`, `name2`, `name3`) VALUES
(1, 'ññ', 'ññ', 'ññ'),
(2, 'ñn', 'ñn', 'ñn'),
(3, 'nn', 'nn', 'nn');
First test, LIKE
SELECT * FROM `testCharacter` where name like '%ñ%'
and same result for all columns (where name2 like '%ñ%', where name3 like '%ñ%'
) :
+--+-----+------+------+
|id| name| name2| name3|
+--+-----+------+------+
| 1| 'ññ'| 'ññ'| 'ññ'|
| 2| 'ñn'| 'ñn'| 'ñn'|
| 3| 'nn'| 'nn'| 'nn'|
+--+-----+------+------+
Second Test, REGEXP
SELECT * FROM `testCharacter` where name REGEXP '(ñ)'
and same result for all columns (where name2 like '%ñ%', where name3 like '%ñ%'
) :
+--+-----+------+------+
|id| name| name2| name3|
+--+-----+------+------+
| 1| 'ññ'| 'ññ'| 'ññ'|
| 2| 'ñn'| 'ñn'| 'ñn'|
+--+-----+------+------+
The question, LIKE
no have difference between characters specials ('ñ'
and 'n'
) and REGEXP
yes?
And applies for characters with accents, like that á, é, í, ó, ú