0

空の場合は列 player_a_id を更新します。それ以外の場合は、代わりに player_b_id を更新します。

これが私のテーブルです: 部屋

+---------+---------+-------------+-------------+-------------+---------+
| room_id | room_no | room_name   | player_a_id | player_b_id | turn_of |
+---------+---------+-------------+-------------+-------------+---------+
|       1 |       1 | blah        |           1 |           3 |       0 |
|       2 |       5 | second room |           1 |           3 |       0 |
|       3 |       3 | 3rd room    |           4 |           5 |       0 |
|       4 |       4 | 4th room    |           6 |           7 |       0 |
+---------+---------+-------------+-------------+-------------+---------+

基本的に、プレイヤーが部屋に参加するとplayer_a_idが更新され、それ以外の場合はplayer_a_idがすでに占有されている場合は、代わりにplayer_b_idを更新します。

4

1 に答える 1

2

用語がempty意味する場合NULL

UPDATE  room
SET     player_a_id = IF(player_a_id IS NULL OR player_a_id = 0, yourVal, player_a_id),
        player_b_id = IF(player_a_id IS NOT NULL OR player_a_id <> 0, yourVal, player_b_id)
WHERE   room_no  = '' // <<== (sample only) set your condition here....
于 2013-05-09T06:23:04.380 に答える