|
|
|
| Подскажите пожалуйста синтаксис оператора if в mysql. Я просто не уверен даже, есть ли он. Кажется где-то краем глаза видел, но где не помню. Поэтому и в чем искать не знаю. А поисковик слово if брать не хочет :( | |
|
|
|
|
|
|
|
для: Atom
(11.09.2005 в 00:48)
| | Честно говоря, только вчера начал учить серьезно MySQL, так что возможны неточности.
Функция IF() имеет следующую конструкцию
IF(условие,если true, если false)
|
К примеру в книге Поля Дюбуа был такой пример:
SELECT last_name,first_name, death FROM president
ORDER BY IF(death IS NULL,1,0), death
|
Этот запрос выведет мертвых первее живых. И, причем, никак иначе сделать нельзя, так как с MySQL 3.23.2 поля со значением NULL выводяться первыми в независимости от типа сортировки. | |
|
|
|
|
|
|
|
для: Ziq
(11.09.2005 в 07:07)
| | Да это функция IF() имеет именно такой синтаксис - её использование достаточно специфично и немного отличается от принятного в других языках программирования. Кроме этого имеется оператор IF, который используется в хранимых процедурах, но он доступен только начиная с MySQL 5.0.1. | |
|
|
|
|
|
|
|
для: cheops
(11.09.2005 в 12:56)
| | Что-то не очень разобрался.
SELECT r_info.*, r_clients.company AS company FROM r_info, r_clients WHERE IF(r_info.client_id!=0, r_info.client_id=r_clients.client_id, 0)
|
Тоесть мне нужно из таблицы r_info достать значение client_id, сравнить его со значением client_id в r_clients и из r_clients получить company соответствующее client_id. Но если client_id в r_info равно 0, то сравнивать ничего не надо. И company не нужна. Конечно, можно в два запроса, но хочется элегантно все сделать :) | |
|
|
|
|
|
|
|
для: Atom
(11.09.2005 в 13:53)
| | Решил сделать в два запроса. Ибо нефиг :)) | |
|
|
|