Mysql 如何选择不同列名的名称,即表中某一行中具有相同值的列的标题?

Mysql 如何选择不同列名的名称,即表中某一行中具有相同值的列的标题?,mysql,sql,Mysql,Sql,该表如下:表名='seats',列为'seat1','seat2','seat3','seat4','seat5' id | seat1 | seat2 | seat3 | seat4 | seat5 1 | 0 | 1 | 1 | 0 | 1 2 | 1 | 1 | 0 | 1 | 0 3 | 1 | 0 | 1 | 1 | 1 我需要一个sql查询来提供以下查询。当id=1时

该表如下:表名='seats',列为'seat1','seat2','seat3','seat4','seat5'

id | seat1 | seat2 | seat3 | seat4 | seat5 
 1 |   0   |   1   |   1   |   0   |   1
 2 |   1   |   1   |   0   |   1   |   0
 3 |   1   |   0   |   1   |   1   |   1
我需要一个sql查询来提供以下查询。当id=1时,输出将为

seat2, seat3, seat5
seat1, seat2, seat4
seat1, seat3, seat4, seat5
如果id=2,则输出将为

seat2, seat3, seat5
seat1, seat2, seat4
seat1, seat3, seat4, seat5
如果id=3,则输出将为

seat2, seat3, seat5
seat1, seat2, seat4
seat1, seat3, seat4, seat5
你是说像这样的事吗?如果没有帮助我理解,我可以调整查询逻辑


据我所知,你们只找有人坐的座位。基于这种理解,我准备了以下查询。如果存在理解上的差距,请发表意见:

select * from 
(
select 'seat1', seat1 as occupiedStatus from [table]
union
select 'seat2', seat2 as occupiedStatus from [table]
union
select 'seat3', seat3 as occupiedStatus from [table]
union
select 'seat4', seat4 as occupiedStatus from [table]
union
select 'seat5', seat5 as occupiedStatus from [table]
) seatsPivot
where occupiedStatus = 1 ;

可能重复否,这不是我的查询,我的查询是不同的列,并且许多列在表的同一行中具有相同的值@梅尔斯:这个问题还不清楚。在这种情况下,“检测”是什么意思?如果列包含数字,为什么值用单引号括起来?您应该将示例数据显示为表中的行(提示:在每行前面放四个空格)。您应该显示希望查询返回的结果。检测“seat2”、“seat3”、“seat5”是什么意思。为什么使用它?我可以在where子句中使用here'和'运算符吗?如果是,怎么做?我用过但给了我一个错误?如下:从中选择*(从[表]中选择'seat1',从[表]中选择'seat2',从[表]中选择'seat3',从[表]中选择'seat3',从[表]中选择'seat4',从[表]中选择'seat4',从[表]中选择'seat5',从[表]中选择'seat5',从[表]中选择'seat5',从[表]中选择'seat5',从[表]中选择'占用状态为1且id为67的座椅枢轴;此处无法使用Id..因为您没有在查询中选择。您可以在选择中添加它,然后也可以在where条件中使用。@ZiaurRahmanShishir哪一个是预期的答案?第一个答案还是我的答案?我很困惑。当然是你的@Biswabid。我已经对你的回答发表了评论,兄弟。但我不知道如何给出我的反馈?请把这件事告诉我,那将对我很好。