SELECT * FROM WHERE找不到所有记录

时间:2014-05-01 01:06:14

标签: mysql sql select command where

当我输入:

select * from 'saleslog' where 'Status' = 'Pending';

select * from 'saleslog' where 'Status' = "Pending";

select * from saleslog where Status = 'Pending';

尽管有数百行"待定"状态列中的值我只显示3条记录。当我寻找" Pending"。

以外的价值时,也会发生同样的情况

但是,如果我输入:

select * from saleslog where status like "%Pending%";

然后显示大多数(如果不是全部)记录。 Pending值前后绝对没有空格或任何其他字符。

我想知道表" saleslog"需要修理,如果需要,如何修理?我是SQL的新手。

2 个答案:

答案 0 :(得分:4)

您可能无法看到字段中隐藏的字符,例如制表符,回车符或换行符。您是否尝试对该字段进行更新以尝试更正它?也许尝试运行下面的更新查询,然后再次运行SELECT查询:

UPDATE saleslog SET status = 'Pending' WHERE status LIKE '%Pending%'  

答案 1 :(得分:1)

尝试以下方法:

UPDATE `saleslog` SET `status` = TRIM(`status`);
SELECT * FROM `saleslog` WHERE `status` = 'Pending';