我有一个包含所有名称的数据表。当我这样做时,该表只有一个cloumn“name”(varchar)
select * from name
它将返回所有行
当我做的时候
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
,长度重新设置一个大于字符串长度的数字。我试图在前面放一个空格,然后尝试用一个空格,这些都没有帮助。
答案 0 :(得分:1)
我敢打赌你的字符串中有空格,换行符或回车符等隐形字符。
试试这个:
select * from name where replace(replace(trim(name), '\r', ''), '\n', '') = 'your_name';
如果这会产生结果,您应该更新表格以删除这些字符。