我想从DB如何编写SQL查询语句的if-else
if id=0 select * from tbl
else select * from tbl where id= :id
如何在MySQL查询使用它选择?
我想从DB如何编写SQL查询语句的if-else
if id=0 select * from tbl
else select * from tbl where id= :id
如何在MySQL查询使用它选择?
试试这个:
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
的结果。
这可以在没有UNION ALL的情况下完成。无论如何。 – 2014-10-08 08:41:36
@ X.L.Ant是的,你是对的。 Rimas和Mureinik的答案看起来更加紧凑。 – ntalbs 2014-10-08 08:42:26
if (id=0) then
select * from tbl
else
select * from tbl where id= :id
end if;
it剂量工作在findii()yii – Sepideh 2014-10-08 08:51:12
两个您的查询之间的区别仅仅是where
条款 - 你可以用or
逻辑运算表达这样的:
SELECT *
FROM tbl
WHERE (:id = id) OR (:id = 0)
当然,这可以进一步与in
运营商清理:
SELECT *
FROM tbl
WHERE :id IN (id, 0)
SELECT *
FROM tbl
WHERE id = :id OR 0 = :id
我认为你应该创建函数,将你的id作为参数,然后你可以使用mySql的IF语句。 在这里,您可以获得有关IF语句的简单快速教程以及功能IF statement的示例。
要知道,MySQL已经集结在IF()函数也。
从哪里来,你正在谈论程序/功能。 – 2014-10-08 08:33:26