我在PHP 5.3.27中使用sqlsrv驱动程序。如何将“is null”作为参数传递给查询。 所以相反
SELECT row_id FROM table WHERE name IS NULL
我可以用
SELECT row_id FROM table WHERE name = ?
答案 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”作为参数传递