我有三个表,每个表有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
答案 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),