为了账号安全,请及时绑定邮箱和手机立即绑定

如何取消设置或使条件为真,如果传递的变量为空或 null

如何取消设置或使条件为真,如果传递的变量为空或 null

PHP
白板的微信 2022-11-04 17:03:04
我有一个查询...SELECT * FROM table_name WHERE id = '$id'如果$id是empty或null,那么我需要从表中获取所有id数据not null我已经尝试过如下,SELECT  * FROM  table_name WHERE(   ('$id' != '' AND id = '$id')   OR   ('$id' = '' AND id IS NOT NULL))但是无条件寻找更好的解决方案if,因为我有很多and条件提前致谢...
查看完整描述

3 回答

?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

这是解决方案...

SELECT * FROM table_name WHERE id = COALESCE(NULLIF($id, ''), id)


查看完整回答
反对 回复 2022-11-04
?
繁星coding

TA贡献1797条经验 获得超4个赞

尝试这个:


SELECT * 

FROM table_name 

WHERE (id = '$id' OR $id IS NULL OR TRIM($id) = '')

如果$id不为空且不为空,则将针对该id字段进行检查。如果$id为 null 或为空,则忽略过滤器并返回所有行。


更新


SELECT * 

FROM table_name 

WHERE (

  (NULLIF(TRIM($id),'') IS NULL AND id IS NOT NULL) OR

  id = $id

)


查看完整回答
反对 回复 2022-11-04
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

你可以自己动手php,比如:


$sql = 'SELECT * FROM table_name where id is not null';


if($id){

   $sql .= ' and id = '.$id;

}


查看完整回答
反对 回复 2022-11-04
  • 3 回答
  • 0 关注
  • 89 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信