一点背景知识 我在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 字段上的直接匹配不会产生结果。
提前致谢 中号
答案 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以外的其他名称重试,看看是否可以复制问题。