[英]how to use IF ELSE conditions in mysql
表: mytable
id created_on status purchase_price_without_tax purchase_tax
1 2015-08-07 00:00:00 1 3322.80 5.00
1 2015-07-15 15:16:23 7 3599.00 71.98
1 2015-07-14 15:16:23 2 3599.00 71.98
1 2015-07-16 15:16:23 4 3599.00 91.98
1 2015-07-17 15:16:23 5 3599.00 21.98
這是我的查詢
SELECT * FROM mytable
WHERE
(IF( `status` IN('1','2') , (`status` IN('1','2')), (`status` IN('7')) ) )
AND id=1
但沒有得到正確的結果,因為我希望它是這樣的:
where
IF (`status`=1 OR `status`=2 )
then status IN ('1','2')
ELSE
`status`=7
注意:如果狀態為 1 或 2,那么它將離開所有其他狀態行並僅選擇狀態為 1 或 2 的行。 如果沒有狀態為 1 或 2 的行,則僅選擇狀態為 7 的行
使用兩個查詢的UNION
來測試這兩種情況。
SELECT *
FROM mytable
WHERE status IN (1, 2)
AND EXISTS (SELECT 1 FROM mytable WHERE status IN (1, 2))
UNION
SELECT *
FROM mytable
WHERE status = 7
AND NOT EXISTS (SELECT 1 FROM mytable WHERE status IN (1, 2))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.