MySQL 一行 select 只有一列没有 NULL 值
MySQL One row select only column without NULL values
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 值的列。
此查询 returns:
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
抱歉英语不好.. <3
使用COALESCE()
过滤掉所有[X Stat]
列为NULL
:
的行
WHERE r.id = 7
AND COALESCE(r.stat01, r.stat02, r.stat03, r.stat04) IS NOT 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 值的列。 此查询 returns:
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
抱歉英语不好.. <3
使用COALESCE()
过滤掉所有[X Stat]
列为NULL
:
WHERE r.id = 7
AND COALESCE(r.stat01, r.stat02, r.stat03, r.stat04) IS NOT NULL