返回布尔值为0的列名

时间:2011-02-08 06:32:42

标签: mysql boolean tinyint

我想查询下表,以返回SessionId和Roomx的交集为0的列的标题。房间的类型是TINYINT - 在mysql中代表BOOLEAN

下表:

SessionId    Room1    Room2    Room3
    1          0        1        0  
    2          1        0        1

对于上表,例如SessionId 1,查询应该返回Room1和Room3 将非常感谢帮助。 感谢。

2 个答案:

答案 0 :(得分:1)

在我看来,它就像一张需要重新设计的桌子。根据列名称判断,您应该处理的“对象”(行)是“事件”:事件发生在房间部分期间。使用该设置,您的表格将如下所示:

session_id room_id
1          2
2          1
2          3

现在仍然没有一个查询会给你在给定会话期间的房间,但很容易找到所在的房间:

SELECT room_id FROM events WHERE session_id = <whatever>

很容易将其与所有可能的房间列表结合起来,以获取您需要的信息。

希望这有帮助!

PS:如果你有一个rooms表(我不会为此添加一个,但如果你碰巧有一个),它会变得更容易:< / p>

SELECT id FROM rooms WHERE NOT EXISTS (SELECT * FROM events WHERE room_id = id AND session_id = <whatever>)

答案 1 :(得分:-2)

SELECT column_name FROM information_schema.columns WHERE table_name = 'tabel Name'