MySQL операторы выбора и условные операторы (IF, CASE, IFNULL, NULLIF)

Если вы читаете эту статью, значит, у вас возникла надобность в использовании условных инструкций (операторов выбора) при написании запросов к базе данных на языке MySQL.

Условный оператор IF
Синтаксис:

IF (EXP1, EXP2, EXP3)

Если EXP1 истина, то IF возвращает EXP2, если EXP1=0 или EXP1=NULL, то оператор IF возвращает  EXP3.

Оператор  выбора CASE
Синтаксис:

CASE value
     WHEN [compare-value1] THEN result1
    [WHEN [compare-value2] THEN result2]
...
    [WHEN [compare-valueN] THEN resultN]
    [ELSE default-result]
END

В данном случае value сравнивается с compare-valueX (где X=1..n), если нет совпадений, тогда оператор выбора возвращает default-result, если же инструкция ELSE отсутствует, тогда возвращается NULL.

IFNULL
Синтаксис:

IFNULL (EXP1, EXP2)

если EXP1<>NULL, то IFNULL возвращает EXP1, в противном случае возвращает EXP2.

NULLIF
Синтаксис:

NULLIF(EXP1, EXP2)

если EXP1=EXP2 возвращает NULL, в другом случае – EXP1.

7 Responses to “MySQL операторы выбора и условные операторы (IF, CASE, IFNULL, NULLIF)”

  1. fanislav says:

    Проблем не возникало, но для общего развития почитал, спасибо :)

  2. WMK says:

    Ооооо как же Вы мне помогли :D … статья древняя но полезная)

  3. Серж says:

    на запррос IF ((6=6) , 8, 7)
    говорит ошибка!!!!!!!!!!!
    почему

    #1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘IF ((6=6) , 8, 7)’ at line 1

  4. Andrey says:

    Спасибо, всё очень понятно описано

Leave a Reply




*