SQL Count by String错误

时间:2011-07-15 01:09:34

标签: mysql string utf-8 count ascii

好的,所以我查了一下,似乎没有人问过这个问题。

所以我有两个词:

thiep cuoi
thiệp cưới

问题是当我COUNT()这些mysql将这两个结合起来时。比如这个sql:

#lets assume these two words have an id of 1 and 2 and that the column name
#in the table is `word`

SELECT `word`, COUNT(`word`)
FROM table_name 
WHERE `id` IN(1,2)
GROUP BY `word`;

将两个单词作为一行返回,计数为2.这些不是通过UTF-8相同的单词,如何在MySQL中绕过这种行为? MySQL不是按UTF-8分组而不是转换为ASCII吗? :/

1 个答案:

答案 0 :(得分:3)

MySQL使用您在列上设置的排序规则来确定单词中字母的相等性。在您在此列中设置的任何排序规则中,为了进行比较,这些字母被认为是相同的。 MySQL没有进行任何转换或丢弃任何数据。

http://dev.mysql.com/doc/refman/5.5/en/charset-general.html

你可能正在使用像latin1_general_ci或utf8_general_ci这样的常见内容。如果您希望这些字母被视为不同,那么您可能需要二进制排序规则。运行SHOW COLLATION LIKE 'utf8%'之类的查询,查看服务器上的可用内容。