У меня это как оператор sql. Что он делает
IF(`table`.`field1` IS NULL,
'',
GROUP_CONCAT(DISTINCT `table`.`field1` ASC SEPARATOR ',')
) AS `MyNewFields`,
Часть предложения SELECT, которое вы указали, вернет строку нулевой длины, если значение TABLE.field1
равно null.
Если значение не является нулевым, оно будет использовать функцию GROUP_CONCAT для возврата строки с разделителями-запятыми на основе значений TABLE.field1
для группа по предложению (чего мы не видим). Пример вывода:
MyNewFields
-------------
a,b,c
Внутри оператора IF он проверяет, является ли поле 1 таблицы равным null, и возвращает пустую строку, если она есть. Если нет, он вызывает метод расширения GROUP_CONCAT, который возвращает разделенный запятой, возрастающий упорядоченный список отдельных значений из поля 1 в таблице.