0

以下の表にクエリを実行して、SessionIdとRoomxの共通部分が0である列のタイトルを返します。RoomのタイプはTINYINTです。これはmysqlではBOOLEANを表します。

以下は表です:

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

上記の表の場合、たとえばSessionId 1の場合、クエリはRoom1を返す必要があります。Room3ヘルプは非常に高く評価されます。ありがとう。

4

2 に答える 2

1

再設計が必要なテーブルのように見えます。列名から判断すると、処理する必要のある「オブジェクト」(行)は「イベント」です。イベントは、部屋セクションで発生します。この設定では、テーブルは次のようになります。

session_id room_id
1          2
2          1
2          3

現在、特定のセッション中に使用されていない部屋を提供するクエリはまだありませんが、次の部屋を見つけるのは簡単です。

SELECT room_id FROM events WHERE session_id = <whatever>

そして、それをすべての可能な部屋のリストと組み合わせて、必要な情報を取得するのは簡単です。

お役に立てれば!

PS:テーブルも ある場合rooms(これのためだけに追加するわけではありませんが、たまたま持っている場合)、さらに簡単になります。

SELECT id FROM rooms WHERE NOT EXISTS (SELECT * FROM events WHERE room_id = id AND session_id = <whatever>)
于 2011-02-10T23:45:21.560 に答える
-2
SELECT column_name FROM information_schema.columns WHERE table_name = 'tabel Name' 
于 2011-02-08T06:53:33.317 に答える