簡體   English   中英

如何在mysql中使用IF ELSE條件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM