我有下一個 mysql 表:
Table(cl_convenios_do_medico)
id auto_increment
med_id int
conv_id int
我想要一個 sql 回傳“1”:
- 如果我發現至少一個“med_id”具有“conv_id”。
- 如果表是空的
否則回傳'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
如果表不為空時似乎作業,但如果表為空則失敗。
也許有人有更簡單的解決方案。
uj5u.com熱心網友回復:
做這樣的事情
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
演示
uj5u.com熱心網友回復:
您可以使用 CASE 陳述句
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN conditionN THEN resultN
ELSE result
END;
例如
SELECT CASE WHEN (SELECT COUNT(*) FROM employee) > 1 THEN '1' ELSE '0' END
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/377385.html
標籤:mysql
上一篇:在MySQL中對兩個組進行磁區后,如何消除重復的行并按列分組?
下一篇:即使該列沒有資料,如何顯示列名?
