这是我的桌子
我的查询是当我使用cubbersId搜索时,如果我得到空数据where cubbersId = 0
否则where cubbersId = 1 (my_search_data)
像存储过程一样。
我试过这个查询
SELECT * FROM hometestimonial WHERE (CASE
WHEN cubbersId IS NOT NULL THEN cubbersId = 1
ELSE cubbersId = 0
END)
我搜索
cubbersId = 1
,所以得到了3 datas
。但是我尝试在cubbersId 2中搜索cubbersId = 2表示no data
,因此在这种情况下,我需要显示cubbersId = 0
数据。这是我的结果:
where cubbersId = 1
数据:where cubbersId = 2
数据:最佳答案
您可以使用UNION ALL来完成。
仅当第一个查询为空时,第二个查询才返回行:
SELECT * FROM hometestimonial
WHERE cubbersId = 2
UNION ALL
SELECT * FROM hometestimonial
WHERE cubbersId = 0 AND
NOT EXISTS (
SELECT 1 FROM hometestimonial
WHERE cubbersId = 2
)