2012-03-21 3 views
3

Есть ли способ получить значение до и обновить запрос в самом запросе обновления?Получить значение поля перед обновлением

Например:

UPDATE t SET field1 = 'new', field2 = IF (field2 = field1, 'new', field2)) 

В 'field2 = field1' Я хочу, чтобы проверить предыдущее значение поля. Mysql работает таким образом, что обновляет поле1, а затем сравнивает его с новым значением, поэтому сравнение всегда будет «IF (field2 =« new », ...»

Поэтому мне хотелось бы что-то вроде

UPDATE t SET field1 = 'new', field2 = IF (field2 = PREVIOUS_VALUE(field1), 'new', field2)) 

Обновлено:

подкачка может не работать иногда в более сложных примерах, когда я хочу это так:

UPDATE t SET field1 = IF (field1 = PREVIOUS_VALUE(field2), 'new', field1)), field2 = IF (field2 = PREVIOUS_VALUE(field1), 'new', field2)) 

ответ

0

Попробуйте в обратном порядке:

UPDATE t SET field2 = IF (field2 = field1, 'new', field2), field1 = 'new' 
Смежные вопросы