Просто создайте вспомогательную таблицу со всеми значениями:
create table helpTable (uid int);
insert into helpTable values (1),(2),(3),(4),(5);
, а затем left join
это и использование оператора case
, чтобы определить, должно ли отображаться name
, когда есть соответствующее значение (не null
):
SELECT case when ht.uid is not null then name end `name`
FROM table t
LEFT JOIN helpTable ht ON t.id = ht.uid;
После того, как вы закончите, DROP TABLE IF EXISTS helpTable;
.
Если вы не хотите создавать таблицу, вы можете сделать это (но я не уверен на 100%, что она будет работать):
SELECT case when ht.uid is not null then name end `name`
FROM table t
LEFT JOIN (
select 1 `uid`
union all
select 2
union all
select 3
union all
select 4
union all
select 5
) ht ON t.id = ht.uid;