mySql新行只能用LIKE搜索,以前有人有这个吗?

时间:2011-08-09 20:48:16

标签: mysql sql macos

一点背景知识 我在mac上运行mySQL 我有一些数据库设置已经正常工作 我最近从另一台服务器的sqlDump创建了一个新表。 我遇到的问题是新行等于=我知道存在的值

e.g。表格设置

id = 1 name ='dave' - 数据库中已存在

id = 2 name ='john' - 我添加了一个新行

以下是我尝试使用结果的SQL ...

Select * from tablename where id=1 -- I get the correct Dave result.

Select * from tablename where `name` = 'dave' -- I get the correct Dave result.

Select * from tablename where id=2 -- I get the correct John result.

Select * from tablename where `name` like 'joh%' -- I get the correct John result.

Select * from tablename where `name` = 'john' -- (No result!) eek!

之前有人见过吗?它位于数据库中,但 name 字段上的直接匹配不会产生结果。

提前致谢 中号

3 个答案:

答案 0 :(得分:1)

一种可能性:名称列中的'john'后面可能有一个尾随空格。

检查的一种方法:

select `name`,char_length(`name`), char_length('john')
from tablename 
where id = 2

答案 1 :(得分:1)

不必处理这个问题的一个简单方法就是修剪你的输入(如果你不希望有前面或尾随的空格。

在这种情况下,您可以进行如下查询:

Select * from tablename where trim(`name`) = trim('john')

答案 2 :(得分:0)

我同意你的问题的评论,它很可能是一个隐藏的空间或类似的东西。如果您包含列定义,那么我们可以检查您使用的数据,我们可以提供更多帮助。删除条目,然后使用john以外的其他名称重试,看看是否可以复制问题。