mysql在使用“like”时返回错误的结果
是的,正如标题所说,你会想到utf8集合名的问题。。也许这是真的 我有一个疑问:mysql在使用“like”时返回错误的结果,mysql,utf-8,Mysql,Utf 8,是的,正如标题所说,你会想到utf8集合名的问题。。也许这是真的 我有一个疑问: select distinct ort from veranstaltungsorte where ort like 'ka%'; 虽然它是从ka开始的,但结果我得到了Köln。加上3个正确的城市 当我使用 select distinct ort from veranstaltungsorte where ort like 'kö%'; 一切正常;只是我的db认为Köln也是从ka开始的 我试过角色集等等,但都
select distinct ort from veranstaltungsorte where ort like 'ka%';
虽然它是从ka开始的,但结果我得到了Köln。加上3个正确的城市
当我使用
select distinct ort from veranstaltungsorte where ort like 'kö%';
一切正常;只是我的db认为Köln也是从ka开始的
我试过角色集等等,但都不管用。。有什么想法吗?utf8\u general\u ci将用O进行排序
也许这就是你想要的
更多关于这个
否则。当你想搜索像ÄËÖ这样的特定字符时,你可以将它设置为utf8_swedish_ci,它将与ö一起工作,它不是utf8_general_ci,我以前已经尝试过了。。而是这个:
ALTER TABLE tablename
CHANGE ort ort VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
重要提示:like现在将区分大小写。。所以我把第一个字母大写,我就完成了。
尽管如此,还是感谢您的帮助。看起来您实际存储在ort列中的数据编码不正确:Köln实际上存储为KÃln。这就解释了为什么在寻找ka时会得到匹配:就目前的排序规则而言,KÃ=ka 你以前没有注意到这一点,这意味着你实际上有两个问题: 现在数据库中的数据已损坏。您可以使用任何数据库工具对此进行检查。 您正在使用不正确的编码连接到数据库:您正在发送UTF-8编码的字符串,而连接设置为latin1或类似的内容。 事实上,在您读写时都会发生相同的字符损坏,这意味着您在使用应用程序时可能不会注意到任何问题。a请发布Descripte VeranstaltungSorter的结果;为了让我们了解一下您的表是如何设置的,请确保您也使用utf8或您正在使用的任何字符集查询表。