MYSQL 有数据却查询不到.什么原因啊

select * from abcd where c = '11xx33sd'
这样查不到任何结果.数据库的表里明明是有这个数据的
select * from abcd where c like '11xx33sd%'
这样却是可以,

如果c列全为数据还可以不用引号查.
select * from abcd where c = 787146
如果加了引号就不行了 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
select * from abcd where c = '787146'

数据是我用LOAD DATA LOCAL INFILE 上传到服务器的.

原因是数据库的数据后面有不可见字符(例如空格、制表、回车等),用下面的语句可以验证:
SELECT CONCAT('[',c,']'),LENGTH(c) FROM abcd

这个语句对字段C的前后添加[]显示,如果有空格可能会显示出来,同时显示c的长度,如果比你看见的多,肯定有问题。

你的数据库需要使用下面的语句来修复:
UPDATE abcd SET c=TRIM(c)
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答