У меня следующий запрос:
SELECT name, GROUP_CONCAT(job SEPARATOR ','),
count(*) FROM users GROUP BY name ORDER BY name ASC
Возможно ли объединить только те поля задания, которые не содержат '', и если да, то как?Я не могу сделать предложение WHERE, потому что мне все еще нужны те, у которых нет 'job'.
Изобразите следующую таблицу:
+-------+----------+
| name | job |
+-------+----------+
| Bob | doctor |
| Bob | teacher |
| Frank | dentist |
| Tom | |
| Tom | |
| Tom | |
| Tom | |
| Tom | salesman |
+-------+----------+
Текущий запрос приведет кв:
+--------+---------------------------------+----------+
| name | GROUP_CONCAT(job SEPARATOR ',') | count(*) |
+--------+---------------------------------+----------+
| Bob | doctor, teacher | 2 |
| Frank | dentist | 1 |
| Tom | ,,,,salesman | 5 |
+--------+---------------------------------+----------+
Но я хочу, чтобы это было:
+--------+---------------------------------+----------+
| name | GROUP_CONCAT(job SEPARATOR ',') | count(*) |
+--------+---------------------------------+----------+
| Bob | doctor,teacher | 2 |
| Frank | dentist | 1 |
| Tom | salesman | 5 |
+--------+---------------------------------+----------+
(Не обращайте внимания на логику этой таблицы. Это просто простой пример, чтобы прояснить ситуацию)
Причина этого в том, что я собираюсь взорвать () GROUP_CONCAT (job SEPARATOR ',') в php, и в фактической таблице будет легко 1000 бесполезных ,, и это сделаетфункция взрыва очень медленно.Спасибо,
lordstyx.