提问人:Sudhir Solka 提问时间:8/9/2023 最后编辑:Sudhir Solka 更新时间:8/9/2023 访问量:48
IN MySQL SELECT 查询 IF 表中未找到值 返回 0 ELSE 返回值
IN MySQL SELECT Query IF Value not Found in Table Return 0 ELSE return the value
问:
我的问题:我需要Mysql查询,如果在任何表中都没有找到值,那么我想将结果值返回为零,否则是我找到的值。
我尝试了 ChatGPT 提供的每个解决方案,但我没有得到我的具体结果
我试过了,
SELECT IF( EXISTS( SELECT RepairingId FROM expenses where WorkDate='2023-07-23 00:00:00' and VehRegNo='PB-56B-8508'), 1, 0) AS RepairId;` -- this is working but i want the value of RepairingId not just 1
SELECT IFNULL(RepairingId, 0) AS result FROM expenses where WorkDate='2023-07-24 00:00:00' and VehRegNo='PB-56B-8508';` -- this give me no value
SELECT CASE WHEN RepairingId IS NOT NULL THEN RepairingId ELSE 0 END AS resultFROM expenses where WorkDate='2023-07-24 00:00:00' and VehRegNo='PB-56B-8508'; -- this give me no value
答:
0赞
San Jahaziel
8/9/2023
#1
尝试
SELECT IFNULL((SELECT RepairingId FROM expenses WHERE WorkDate='2023-07-23 00:00:00' AND VehRegNo='PB-56B-8508'), 0) AS RepairId;
或
SELECT IFNULL(RepairingId, 0) AS result FROM expenses WHERE WorkDate='2023-07-24 00:00:00' AND VehRegNo='PB-56B-8508' LIMIT 1;
或
SELECT CASE WHEN RepairingId IS NOT NULL THEN RepairingId ELSE 0 END AS result FROM expenses WHERE WorkDate='2023-07-24 00:00:00' AND VehRegNo='PB-56B-8508' LIMIT 1;
0赞
Asi Salo
8/9/2023
#2
试试这个:
SELECT IFNULL(
(SELECT RepairingId FROM expenses WHERE WorkDate='2023-07-24 00:00:00' AND VehRegNo='PB-56B-8508' LIMIT 1),
0
) AS result;
你可以在 dbfiddle 中看到我的例子
评论