如何解决MySQL一行仅选择没有NULL值的列
SELECT r.id AS Id,r.slot AS Slot,rg.name AS Grade,rt.name AS Type,r.main_stat AS Main Stat,r.stat01 AS 1st Substat,r.stat02 AS 2nd Substat,r.stat03 AS 3rd Substat,r.stat04 AS 4th Substat,CASE WHEN r.isEquipted = 0 THEN 'FALSE' ELSE 'TRUE' END AS isEquipted
FROM runes r
INNER JOIN rune_grade rg
ON r.grade_id = rg.id
INNER JOIN rune_type rt
ON r.type_id = rt.id
WHERE r.id = 7;
我有这个查询,只给我一条记录。 WHERE子句中的这个“ 7”在我的代码中是可变的。 我想删除为我提供NULL值的列。 该查询返回:
ID Slot Grade Type M Stat 1st Stat 2nd Stat 3rd Stat 4th Stat
7 4 normal swift spd-24 NULL NULL NULL NULL
如果where子句等于其他id,则1st 2nd 3rd 4th Stat可以具有值。
ID Slot Grade Type M Stat 1st Stat 2nd Stat 3rd Stat 4th Stat
6 3 normal swift spd-24 atk-32 hp-355 NULL NULL
对不起,英语不好。
解决方法
使用COALESCE()
过滤掉所有[X Stat]
列均为NULL
的行:
WHERE r.id = 7
AND COALESCE(r.stat01,r.stat02,r.stat03,r.stat04) IS NOT NULL
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。