我有一个包含所有名称的数据表。当我这样做时,该表只有一个 cloumn "name"(varchar)
从名称中选择 *
它将返回所有行
当我做的时候
select * from name where name="(a name which is in the database)"
什么都不会返回(我已经尝试了很多表中的名称)。当我做的时候
select * from name where length(name)>0;
它将再次返回所有行。
有什么问题吗?
我试过 SELECT name, length(name), MD5(name) FROM name
,长度返回一个比字符串长度大的数字。我尝试在前面放一个空格,然后尝试在后面放一个空格,这两种方法都无济于事。
最佳答案
我打赌你的字符串中有不可见的字符,如空格、换行符或回车符。
试试这个:
select * from name where replace(replace(trim(name), '\r', ''), '\n', '') = 'your_name';
如果这产生了结果,您应该更新您的表格以删除这些字符。
关于mysql - Where 子句不返回任何内容 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25765088/