簡體   English   中英

如何根據條件使用 mysql 查詢返回值

[英]How return a value with mysql query depending on condition

我有下一個 mysql 表:

Table(cl_convenios_do_medico)
id auto_increment
med_id  int
conv_id int

我想要一個 sql 返回“1”:

  1. 如果我發現至少一個“med_id”具有“conv_id”。
  2. 如果表是空的

否則返回'0'

我已經嘗試過:

select IFNULL( (select '1' from cl_convenios_do_medico CC where 
    CC.med_id=<my_med_id> and CC.conv_id=<my_conv_id> ) 
    and  exists(select '1' from cl_convenios_do_medico CC where CC.med_id=<my_med_id> limit 1),'0') as result

如果表不為空時似乎可以工作,但如果表為空則失敗。

也許有人有一個更簡單的解決方案。

您可以使用 CASE 語句

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    WHEN conditionN THEN resultN
    ELSE result
END;

做這樣的事情

SELECT MAX(result)
FROM (
 SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END AS result
 FROM cl_convenios_do_medico
 WHERE med_id = 8
 AND conv_id = 9
 UNION
 SELECT CASE WHEN COUNT(*) = 0 THEN 1 ELSE 0 END
 FROM cl_convenios_do_medico
) c

演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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