что делает этот sql - PullRequest
       2

что делает этот sql

0 голосов
/ 04 июня 2010

У меня есть это как заявление SQL. Что это делает

IF(`table`.`field1` IS NULL, 
   '', 
   GROUP_CONCAT(DISTINCT `table`.`field1`  ASC SEPARATOR ',')
   ) AS `MyNewFields`, 

Ответы [ 2 ]

8 голосов
/ 04 июня 2010

Часть предложенного вами предложения SELECT вернет строку нулевой длины, если значение TABLE.field1 равно нулю.

Если значение не равно нулю, оно будет использовать функцию GROUP_CONCAT , чтобы вернуть строку с разделителями-запятыми на основе значений TABLE.field1 для предложения group by (которое мы не видим). Пример вывода:

MyNewFields
-------------
a,b,c
0 голосов
/ 04 июня 2010

Внутри оператора IF он проверяет, является ли Field1 таблицы пустым, и возвращает пустую строку, если это так. Если нет, то он вызывает метод расширения GROUP_CONCAT, который возвращает разделенный запятыми, упорядоченный по возрастанию список различных значений из Field1 в таблице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...