2016-04-13 2 views
0

Я хочу написать запрос, который проверит 8 параметров строки, такие же, как и параметры, переданные процедуре. Если какой-либо из них отличается от другого, измените статус, иначе ничего не сделайте.Возможно ли иметь многоуровневые проверки в одном случае mySQL IF?

Есть ли способ проверить все эти параметры в одном случае IF? Например:

IF (v_duty <> duty) OR (v_current <> current) OR (v_frequency <> frequency) THEN 

    * UPDATE ......; 

END IF 

Или я должен использовать ELSE IF для каждого сравнения я хочу сделать?

Вышеуказанное не работает, с или без кронштейнов между каждым тестом.

+0

этих полей в IF случаев участвуют в запрос обновления? – mitkosoft

+0

Я не думаю, что вы можете делать то, что хотите, с помощью 'update'. Конечно, 'if' принимает условия, принятые булевыми операторами. –

+0

Возможный дубликат [Несколько условий в одном IF в выбранном запросе] (http://stackoverflow.com/questions/5008503/multiple-condition-in-a-single-if-in-select-query) –

ответ

2

Вы могли бы справиться с этим с помощью простого UPDATE и WHERE условия:

UPDATE table_name 
    SET status_column = 'new_status' 
WHERE identifying_column = :identifier 
    AND (
      v_duty != :v_duty 
     OR v_current != :current 
     OR v_frequency != :frequency 
     ) 
+0

Работал отлично! благодаря! –

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