Как использовать Coalesce в MySQL
небольшая помощь здесь. Я действительно не понимаю, как использовать это объединение в MySQL
Я прочитал все страницы на странице 1 результат how to use coalsece в результате google. 
Я знаю его значение, что он возвращает первое ненулевое значение, которое он встречает, и null в противном случае.
но это все еще неясные для меня.
- как я увидел запросы, которые возвращают несколько значений? Разве это не только первое не null значение вернулся?
- и как он решает, какой столбец для базы? coalesce(column1,column2)? что делать, если первый столбец равен null, а другой столбец не равен null?
- или если я ошибаюсь или мой синтаксис неправильный, как мне правильно писать?
- может ли кто-нибудь предоставить очень хороший и простой пример того, как его использовать?
- и когда желательно использовать.
4 ответов
- 
как я увидел запросы, которые возвращают несколько значений? разве это не только первое значение not null, которое возвращается? да, возвращается только первое ненулевое значение. Вы, должно быть, ошибаетесь в вопросах, которые вы видели, когда вы думали, что это не так: если бы вы могли показать нам пример, мы могли бы помочь прояснить недоразумение. 
- 
и как это решить, какой столбец база? коалесцируют(столбец1,столбец2)? что делать, если первый столбец равен null, а другой столбец не равен null? в порядке своих аргументов: в этом примере column1доcolumn2.
- 
или если im неправильно или мой синтаксис неправильный, как мне правильно написать его? ты не ошибся. 
- 
может ли кто-нибудь предоставить очень хороший и простой пример того, как его использовать? взяты из документация: mysql> SELECT COALESCE(NULL,1); -> 1 mysql> SELECT COALESCE(NULL,NULL,NULL); -> NULL
- 
и когда желательно использовать. желательно использовать всякий раз, когда вы хотите выбрать первое ненулевое значение из списка. 
Я лично использую coalesce, когда хочу найти первый столбец, который не пуст в строке из списка приоритетов.
в этом случае у меня есть приоритет мобильного телефона, затем дома, а затем работы.
TABLE STRUCTURE
--------------------------------------------
| id | customername | mobile | home | work |
--------------------------------------------
| 1  | Joe          | 123    | 456  | 789  |
--------------------------------------------
| 2  | Jane         |        | 654  | 987  |
--------------------------------------------
| 3  | John         |        |      | 321  |
--------------------------------------------
SELECT id, customername, COALESCE(mobile, home, work) AS phone FROM customers
RESULT
------------------------------
| id | customername | phone  |
------------------------------
| 1  | Joe          | 123    |
------------------------------
| 2  | Jane         | 654    |
------------------------------
| 3  | John         | 321    |
------------------------------
COALESCE вернет первый ненулевой столбец или значение.
Пример Использования:
SELECT COALESCE(my_column, my_other_column, 'default') as username FROM my_table;
примеры:
my_column  my_other_column     results
null       null                'default'
null       0                   '0'
null       'jimmy'             'jimmy'
'bob'      'jimmy'             'bob'
Это идеальный пример объединения, если изменит нулевые поля / столбцы на то, что вы хотите, чтобы они были в случае от null до 0 и 1. Скопируйте это в Редактор mysql, он будет выглядеть намного лучше
выберите " Column1 (Dont Want Touch)", coalesce (column2 (который вы хотите установить в 0, если null), 0) как column2 (дайте ему то же имя,что и, например, "column2"), coalesce(column3(вместо null, установленного в 1), 1) Как column3(дайте ему то же имя, что и, например, "column3")
из "MydataTable" Где "somedates" в ('2015-04-10','2015-04-03','2015-03-27','2015-04-17') и id = 10 порядок по "somedates";
