我有一个查询...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 回答
繁星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
)
凤凰求蛊
TA贡献1825条经验 获得超4个赞
你可以自己动手php,比如:
$sql = 'SELECT * FROM table_name where id is not null';
if($id){
$sql .= ' and id = '.$id;
}
- 3 回答
- 0 关注
- 89 浏览
添加回答
举报
0/150
提交
取消