繁体   English   中英

SELECT * FROM WHERE找不到所有记录

[英]SELECT * FROM WHERE does not find all records

当我输入:

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

要么

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

要么

select * from saleslog where Status = 'Pending';

尽管事实上在“状态”列中有数百行具有“待定”值的行,但我只显示了3条记录。 当我寻找“待定”以外的价值时,也会发生同样的情况。

但是,如果输入:

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

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

我想知道是否需要修复表“ saleslog”,如果需要,如何解决? 我是SQL的新手。

您可能看不见的字段中有一些隐藏的字符,例如制表符,回车符或换行符。 您是否尝试过在现场进行更新以尝试更正? 也许尝试运行以下更新查询,然后再次运行SELECT查询:

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

请尝试以下操作:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM