Dear List,
I get incorrect result when searching for the norwegian character 'å'
using LIKE. I get rows with 'a' in it, and visa versa if I search for
'a', I get results which has 'å' in it in addition to the ones with 'a'.
Example:
CREATE TABLE names (
name VARCHAR(255)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO names VALUES
('Foo'), ('Bar'), ('Båt'), ('Bør'), ('Ære');
Now, searching gives me the following results:
mysql SELECT * FROM names WHERE name LIKE '%å%';
+--+
| name |
+--+
| Bar |
| Båt |
+--+
mysql SELECT * FROM names WHERE name LIKE '%a%';
+--+
| name |
+--+
| Bar |
| Båt |
+--+
Searching for strings with other norwegian characters seams to work:
mysql SELECT * FROM names WHERE name LIKE '%ø%';
+--+
| name |
+--+
| Bør |
+--+
I found that I may use
mysql SELECT * FROM names WHERE LOWER(name) LIKE BINARY LOWER('%å%');
which returns correct results, but this disables me from letting the
user do case sensitive searches.
Am I doing something wrong or stupid? Could this be a MySQL bug?
How do I know this isn't a problem with other utf-8 characters in other
languages?
I've searched in bug reports, but cannot find this exact problem.
Some additional information that might be useful:
mysql SELECT VERSION();
+--+
| VERSION()|
+--+
| 5.0.45-Debian_1ubuntu3.1-log |
+--+
mysql SHOW VARIABLES LIKE '%character%';
+--++
| Variable_name| Value |
+--++
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results| utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--++
Thanks,
Magne Westlie
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]