我有以下查詢:WHERE子句中GROUP_CONCAT
SELECT name, GROUP_CONCAT(job SEPARATOR ','),
count(*) FROM users GROUP BY name ORDER BY name ASC
是否有可能只CONCAT不包含'的工作領域,如果是的話怎麼樣?我不能做WHERE子句,因爲我仍然需要那些沒有'工作'的子句。
圖片如下表:
+-------+----------+
| 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 |
+--------+---------------------------------+----------+
(不介意這個表格的邏輯,這只是一個簡單的例子,讓事情變得清晰)
這樣做的原因是,我將在php中爆炸()GROUP_CONCAT(job SEPARATOR','),並且在實際的表中,將會容易出現1000無用的'',並且這會使爆炸功能非常慢。 謝謝,
lordstyx。
我已經更新了原來的問題了一下,因爲真的不是我的意思。不管怎麼說,多謝拉 – lordstyx 2010-11-28 18:27:10