php为什么在mysql中搜索的时候.结果不准确

来源:百度知道 编辑:UC知道 时间:2024/05/16 15:37:18
比如说
select * from phome_ecms_news where title like '%辛%'
那么所有包含"辛"的都出来了,并且还有别的没包含辛的一些词出来了
包含"新"的也出来了,怎么回事啊,是不是mysql对中文的支持有问题

你这样的语句,搜索不准确有两方面的原因:

一、大小写的问题,对于你的“辛”和“新”,就是大小写模糊识别造成的。你可以修改数据库中字段类型,加上binnary就可以避免MYSQL查询时进行大小写模糊匹配。

二、半边汉字的问题。我们知道汉字是两个大于160的ASCII代码表示的,一般情况下,前一个汉字的后面字节,和后一个汉字的前一字节又可以组成新的汉字,在搜索单个汉字的时候会被匹配。一般尽量避免搜索单个中间的汉字,就是你上面那样的语句,搜索的单个汉字在首位是可以的,比如'%辛'、'辛%'