我想从db
中选择if id=0 select * from tbl
else select * from tbl where id= :id
如何在mysql查询中使用它?
答案 0 :(得分:2)
您的两个查询之间的差异只是where
子句 - 您可以使用or
逻辑运算符表达:
SELECT *
FROM tbl
WHERE (:id = id) OR (:id = 0)
当然,可以使用in
运算符进一步清理:
SELECT *
FROM tbl
WHERE :id IN (id, 0)
答案 1 :(得分:2)
试试这个:
select * from tbl where :id = 0
union all
select * from tbl where :id <> 0 and id = :id
这只是一个查询,它只会执行一个分支作为指定的:id
值。在:id=0
时,第一个查询的条件变为true
,结果与select * from tbl
相同。当:id<>0
时,第一个查询的结果将为空,但第二个查询将返回select * from tbl where id=:id
的结果。
答案 2 :(得分:1)
if (id=0) then
select * from tbl
else
select * from tbl where id= :id
end if;
答案 3 :(得分:1)
SELECT *
FROM tbl
WHERE id = :id OR 0 = :id
答案 4 :(得分:0)
我认为您应该创建将您的id作为参数的函数,然后您可以使用mySql IF语句。 这里有关于IF语句的简单快速的教程,以及函数IF statement的示例。
请注意mySql也有内置的IF()函数。