SQL查询条件

时间:2012-12-11 05:56:38

标签: sql conditional-statements where

我有一条记录,其中包含以下数据:     id = 123;     requested_by =杰克逊;     verify_status = NULL;

我希望上面的记录作为以下查询的结果。但是,它返回0行。

$sql="SELECT * FROM spr WHERE requested_by IS NOT NULL AND verify_status!='Accept'";

我想选择除“Accept”以外的verify_status的所有记录。

我想知道verify_status有什么问题!='接受'?请帮忙。谢谢。

2 个答案:

答案 0 :(得分:0)

您需要使用NULL verify_status

处理这些行
$sql="SELECT * FROM spr WHERE requested_by IS NOT NULL 
       AND (verify_status IS NULL OR verify_status != 'Accept'")

答案 1 :(得分:0)

NULL的任何比较都是错误的,因此必须明确处理NULL字段。

你可以用或 -

来做

where verify_status is null or verify_status != 'Accept'

或者,您可以使用coalesceNULL转换为其他值

where coalesce(verify_status, 'xxNULLxx') != 'Accept'

(请注意,以这种方式使用函数coalesce会使您的查询无法使用verify_status上的任何索引。