MYSQL喜欢不同语言的不同行为,所有表格都是utf8

时间:2014-04-23 11:53:27

标签: php mysql sql search sql-like

我有三个表,每个表有3列,它们彼此相同。唯一不同的是使用mysql GUI创建的 se_words ,另外两个是在sql GUI内以编程方式mysql创建的。

se_words
en_words
es_words
        -> id, name, user

我希望通过最后3个字符找到单词。

SELECT * FROM `es_words` WHERE word LIKE '%nar' // returns empty results (should be at least 500-1000+)
SELECT * FROM `en_words` WHERE word LIKE '%ate' // returns empty results (should be at least 500-1000+)
SELECT * FROM `se_words` WHERE word LIKE '%ens' // returns 1000+ results

最大的问题是 en_words es_words utf8(与 se_words 相同)始终返回为空结果。

我已将其更改为拉丁语,utf8_bin,utf8_unicode_ci,latin_spanish_ci等,但这并不重要。仍然提供结果

如果我将sql代码更改为只有1个字符并且双方都进行了签名,则代码会给出结果。

SELECT * FROM `es_words` WHERE word LIKE '%a%' // returns 10000+ results
SELECT * FROM `en_words` WHERE word LIKE '%a%' // returns 10000+ results

如果所有列都有多个值(应该在LIKE搜索中返回),那么sqlcode不同的表会返回不同的结果吗?

修改

LIKE搜索时应该返回的单词很少

es_words

abadernar,abaldonar,abanar,abandonar,abarrenar

en_words

aagate,abacate,abacinate,abalienate,阿巴特

来自带有修剪变量的代码

SELECT w.id, w.word, w.user 
FROM en_words AS w 
WHERE w.word LIKE '%gel' ORDER BY LENGTH(word) ASC LIMIT 0,500

1 个答案:

答案 0 :(得分:0)

看起来像是来自dictonary的 \ r 。只能通过SQL DUMP查看它。 PHP根本不会显示它。 我希望它能在将来遇到问题解决你的问题

(943, 'abridgments\r', 0),
(944, 'abrikosov\r', 0),
(945, 'abrikossov\r', 0),
(946, 'abril\r', 0),
(947, 'abrim\r', 0),
(948, 'abrin\r', 0),
(949, 'abris\r', 0),
(950, 'abristle\r', 0),