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

我有一个查询...


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条件


提前致谢...


白板的微信
浏览 154回答 3
3回答

侃侃尔雅

这是解决方案...SELECT * FROM table_name WHERE id = COALESCE(NULLIF($id, ''), id)

繁星coding

尝试这个: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)

凤凰求蛊

你可以自己动手php,比如:$sql = 'SELECT * FROM table_name where id is not null';if($id){   $sql .= ' and id = '.$id;}
打开App,查看更多内容
随时随地看视频慕课网APP