如何用if-else编写sql查询语句

时间:2014-10-08 08:29:31

标签: mysql sql

我想从db

中选择
if id=0 select * from tbl
else select * from tbl where id= :id

如何在mysql查询中使用它?

5 个答案:

答案 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()函数。