2013-08-21 4 views
0

У меня есть простая таблица с двумя столбцами user_id, cumulative_score. У меня есть процесс, который убеждает кучу пользователей в задаче и присваивает им оценки. Теперь я должен обдумать совокупное количество пользователей. Можно ли это сделать в одном запросеОбновление нескольких строк в MySQL при использовании предложения WHERE

UPDATE scores where user_id = "a" set score = score + a_score 
and where user_id = "b" set score = score + b_score 

ответ

0

Похоже, что вы ищете CASE:

UPDATE scores SET 
    score = score + (CASE WHEN user_id = 'a' THEN a_score ELSE b_score END) 
WHERE 
    user_id = 'a' OR user_id = 'b'; 

В зависимости от ситуации, хотя, вы могли бы быть лучше только с управлением отдельными запросами , (Этот запрос уже довольно болезненный для чтения, и повторение user_id является неприглядным.)

+0

Если я хочу, чтобы вставить строку, если она уже не присутствует Могу ли я использовать INSERT INTO my_tables ... дублирование KEY UPDATE above_query_in_your_answer – user462455

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