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

0

У меня это как оператор sql. Что он делает

IF(`table`.`field1` IS NULL, 
   '', 
   GROUP_CONCAT(DISTINCT `table`.`field1`  ASC SEPARATOR ',')
   ) AS `MyNewFields`, 
  • 0
    Было бы намного легче помочь вам, если бы вы дали нам контекст, в котором он появляется.
  • 0
    @frustratedwithformsdesigner хороший идентификатор :)
Теги:
database
string

2 ответа

8
Лучший ответ

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

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

MyNewFields
-------------
a,b,c
  • 0
    +1 писал примерно так же как и ты, когда я заметил твой ответ
  • 0
    +1, OMG Ponies находится на вершине SQL
0

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню