2013-07-23 5 views
0

У меня этот вопрос, и я исследовал более пяти дом, но ничего не нашел :(. У меня есть таблица называется поддержка.Update Заявление с Case в MYSQL

UPDATE support s SET s.Survey_Status = 0 
CASE 
WHEN s.Survey_Status = 0 Then 1 
WHEN s.Survey_Status = 1 Then 2 
End 
Where last_response < ADDDATE(CURDATE(), INTERVAL 1 DAY) 
and support_waiting ="n" ; 

мне нужно обновить таблицу поддержки и установите survey_status = 1, за исключением пятой строки в таблице, будет = 2. Например, если у меня есть статус опроса от 1 до 10 = 1, то пятый будет = 2. Любая идея, пожалуйста, Кстати, я работаю с mysql Heidi.

Процент в 0%

+0

Бессмысленные без заказа. – eggyal

+1

Ismail, можете ли вы добавить пример данных и ожидаемые результаты? Также опишите, что вы подразумеваете под «пятой строкой» - это определяется столбцом (легко) или его «естественным порядком» в таблице (сложным). –

+0

@EdGibbs: Что такое «естественный порядок» внутри таблицы? – eggyal

ответ

1

Вы можете комбинировать user variables и MOD():

UPDATE support, (SELECT @r:=0) init 
SET  Survey_Status = IF(MOD(@r:[email protected]+1,5), 1, 2) 
WHERE last_response < CURRENT_DATE + INTERVAL 1 DAY 
    AND support_waiting = 'n' 
ORDER BY ... 
+0

Очень полезно, и он отлично работает :) Большое спасибо –