将“is null”作为参数传递给sqlsrv的查询

时间:2013-10-25 07:43:51

标签: php sql sqlsrv

我在PHP 5.3.27中使用sqlsrv驱动程序。如何将“is null”作为参数传递给查询。 所以相反

SELECT row_id FROM table WHERE name IS NULL

我可以用

SELECT row_id FROM table WHERE name = ?

4 个答案:

答案 0 :(得分:1)

那么是什么阻止你编写if / else子句?

if($i_need_a_value) {
    $query = 'SELECT row_id FROM table WHERE name = ?';
} else {
    $query = 'SELECT row_id FROM table WHERE name IS NULL';
}

答案 1 :(得分:0)

如果特定列为null,或者它包含以下查询中的某个值,则可以检查该列。

select row_id 
from table 
where (name IS NULL) or (name IS NOT NULL && name<>'');

答案 2 :(得分:0)

您可以使用案例陈述来解决可空性问题。一个巧妙的技巧是使用具有单行虚拟查询的连接,以避免必须将您的值绑定两次:

SELECT row_id 
FROM   table
JOIN   (SELECT ? AS param) dummy
WHERE  (name IS NULL AND param IS NULL) OR name = param

答案 3 :(得分:0)

我想以另一种方式自己做这件事

SELECT row_id FROM table WHERE ISNULL(name,-1)=?

如果您确定永远不会使用'-1'作为条件,这将有效。只需在需要值时使用参数,在需要“IS NULL”时使用“-1”。 但我想没有办法将“is null”作为参数传递