MySQL операторы выбора и условные операторы (IF, CASE, IFNULL, NULLIF)
- 14 October, 2008
- Posted in MySQL
Tags : CASE, MySQL- 7 Comments
Если вы читаете эту статью, значит, у вас возникла надобность в использовании условных инструкций (операторов выбора) при написании запросов к базе данных на языке 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.
Проблем не возникало, но для общего развития почитал, спасибо
Youre welcome )
Ооооо как же Вы мне помогли
… статья древняя но полезная)
Всегда рад)
на запррос 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
Попробуйте вот так
SELECT IF( ( 6 =6 ) , 8, 7 )
FROM some_table_name
Спасибо, всё очень понятно описано