捷克字符

anauzrmj  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(177)

我在mariadb中有一个名为table1的表,带有utf8字符集
有以下记录

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

下面的语句“select*from table1 where field1='jiri cerveny';”
我想,它只会回应1条记录,但我收到所有4条记录。
任何想法都将不胜感激。
谢谢吉里

koaltpgm

koaltpgm1#

在搜索中使用正确的排序规则。
假设utf8\u捷克语\u ci,您应该:

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 |

或者

SELECT field1  FROM table1 WHERE field1='Jiri Červeny' collate utf8_czech_ci;

|       field1 |
|--------------|
| Jiri Červeny |

sqlfiddle公司

相关问题