MariaDB捷克人物

时间:2018-05-15 10:52:25

标签: mysql mariadb

我在MariaDB中有一个名为table1的表,其中包含utf8字符集

有以下记录

field1
Jiri Cerveny
Jiří Červený
Jiri Červeny
Jiři Červený

以下陈述" SELECT * FROM table1 WHERE field1 =' Jiri Cerveny';"

我希望,它只会回复1条记录,但我会收到所有4条记录。

任何想法都将受到赞赏。

由于 伊日

1 个答案:

答案 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 |

SQLFIDDLE