2013-03-18 5 views
0

У меня есть таблица, которая выглядит примерно такОбновление строк на основе другой строки в той же таблице

id |game_id| player_id| winner 
---------------------------- 
1 | 1 | 1  |  
2 | 1 | 2  | 
3 | 1 | 3  | 
4 | 1 | 4  |

У меня есть game_id и победитель идентификатор, я хочу победитель обновления как 1 и проигравшая как 0;

UPDATE tournament SET winner = '1' WHERE game_id= 1 AND player_id = 1 

затем

UPDATE tournament SET winner = '0' WHERE game_id= 1 AND player_id != 1 

ВЫВОД

id |game_id| player_id| winner 
---------------------------- 
1 | 1 | 1  | 1 
2 | 1 | 2  | 0 
3 | 1 | 3  | 0 
4 | 1 | 4  | 0

может кто-нибудь сказать мне, как это может быть сделано с помощью одного запроса

ответ

2
UPDATE tournament SET winner = IF(player_id = 1, '1', '0') WHERE game_id= 1 
0

Запрос

SQLFIDDLEExample:

UPDATE tournament 
SET winner = CASE WHEN player_id = 1 
        THEN '1' 
        ELSE '0'END 
WHERE game_id= 1 
+0

Сэр мне нужна помощь, может у пожалуйста, ответьте на мой вопрос http://stackoverflow.com/questions/15535591/getting-hierarchy-data-from-mysql-tables-and -optimize-код –

Смежные вопросы