当我搜索"你"时,选择查询mysql结果'û'

And*_*ndi 2 mysql

我的查询是:

SELECT * FROM enwiki.page where title_text = 'drug';
Run Code Online (Sandbox Code Playgroud)

我得到的结果之一是tilte_text ='Drûg'.我怎么能防止这种情况?

jav*_*ezg 5

使用正确的整理(如:utf8_general)

SELECT * FROM enwiki.page where title_text = 'drug' COLLATE utf8_general;
Run Code Online (Sandbox Code Playgroud)

MySQL有一个CHARSET,告诉DB如何在内部存储值.另一方面,COLLATION指示DB如何搜索,比较和排序数据.

例如,如果您使用任何结束的排序规则_ci(表示不区分大小写,并且您按如下方式搜索:

SELECT name FROM myTable WHERE name LIKE %Home%;
Run Code Online (Sandbox Code Playgroud)

你可以收到这个:

等等...

同样的事情发生在字母的符号或重音符号上(在你的情况下).您必须使用考虑它们的排序规则.