我想從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