Php 通行证;是空的;作为sqlsrv查询的参数
我正在PHP5.3.27中使用sqlsrv驱动程序。如何将“is null”作为参数传递给查询。 所以相反Php 通行证;是空的;作为sqlsrv查询的参数,php,sql,sqlsrv,Php,Sql,Sqlsrv,我正在PHP5.3.27中使用sqlsrv驱动程序。如何将“is null”作为参数传递给查询。 所以相反 SELECT row_id FROM table WHERE name IS NULL 我可以用 SELECT row_id FROM table WHERE name = ? 嗯。。。是什么阻止您编写if/else子句 if($i_need_a_value) { $query = 'SELECT row_id FROM table WHERE name = ?'; } els
SELECT row_id FROM table WHERE name IS NULL
我可以用
SELECT row_id FROM table WHERE name = ?
嗯。。。是什么阻止您编写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';
}
通过以下查询,您可以检查特定列是否为null或是否包含somevalue
select row_id
from table
where (name IS NULL) or (name IS NOT NULL && name<>'');
选择行\u id
从桌子上
其中(名称为NULL)或(名称不为NULL&&name“”);
您可以使用case语句来解决可空性问题。一个巧妙的技巧是将连接与单行伪查询一起使用,以避免必须绑定值两次:
SELECT row_id
FROM table
JOIN (SELECT ? AS param) dummy
WHERE (name IS NULL AND param IS NULL) OR name = param
我自己想到了另一种方法
SELECT row_id FROM table WHERE ISNULL(name,-1)=?
如果您确定永远不会使用“-1”作为条件,那么这将起作用。只需在需要值时使用参数,在需要“为空”时使用“-1”。
但我想没有办法将“is null”作为参数传递使用is null有什么错?在某些情况下,我需要检查其他情况下它是否为null-如果它是某个值。我想用一个带参数的查询来实现它。看看我的查询,告诉我这是否符合我们的目的。只是想知道这是否可能。如果不是-我想这就是解决问题的方法。好吧,现在我正在使用这个解决方案,我想我的问题的答案是,我无法检查您需要的空值
为空(因为=NULL
不能得到您期望的结果,请检查解释)。所以您要么需要这个简单的子句,要么需要一个相对复杂的查询。为了简单起见,我会选择这样的解决方案。您还可以插入运算符,如下所示:$operator='='$query='从名称所在的表中选择行\u id'$运算符“?”代码>为避免混淆,请注意:
等同于=代码>在where语句中使用时意味着不等于@giorgio:p据我所知,这不是我需要的。当页面加载时,我要么只需要看到“NULL”值,要么只需要看到特定的值。我不想让他们都检查我的编辑,我想这是你想要的@MaiorovYury