我在MariaDB中有一个名为table1的表,其中包含utf8字符集
有以下记录
field1
Jiri Cerveny
Jiří Červený
Jiri Červeny
Jiři Červený
以下陈述" SELECT * FROM table1 WHERE field1 =' Jiri Cerveny';"
我希望,它只会回复1条记录,但我会收到所有4条记录。
任何想法都将受到赞赏。
由于 伊日
答案 0 :(得分:1)
在搜索中使用正确的collation。
假设 utf8_czech_ci ,你应该这样做:
System.Diagnostics.Debugger.Break();
测试:
SELECT field1
FROM table1
WHERE field1='Jiri Cerveny' collate utf8_czech_ci;
使用普通查询
create table table1 (field1 VARCHAR(50)) DEFAULT CHARSET=utf8;
INSERT INTO table1 VALUES ('Jiri Cerveny');
INSERT INTO table1 VALUES ('Jiří Červený');
INSERT INTO table1 VALUES ('Jiri Červeny');
INSERT INTO table1 VALUES ('Jiři Červený');
通过整理:
SELECT field1 FROM table1 WHERE field1='Jiri Cerveny'
| field1 |
|--------------|
| Jiri Cerveny |
| Jiří Červený |
| Jiri Červeny |
| Jiři Červený |
或
SELECT field1 FROM table1 WHERE field1='Jiri Cerveny' collate utf8_czech_ci;
| field1 |
|--------------|
| Jiri Cerveny |