0
我有以下表結構:組行由字段
+------------------------+
| id | name | category |
+------------------------+
| 1 | name_1 | cat_1 |
| 2 | name_2 | cat_2 |
| 3 | name_3 | cat_1 |
| . | . | . |
| . | . | . |
| n | name_n | cat_k |
+------------------------+
是「n」是表和「k」的總的行是任意數。我的問題是,有沒有辦法讓SQL查詢檢索按類別分組的行?我的意思是有可能得到像這樣的結構?
array(
"cat_1" => array(
"name_1", "1",
"name_3", "3",
),
"cat_2" => array(
"name_2", "2",
some rows ....
),
...
"cat_k" => array(
some rows....
),
)
如果有什麼方法,請給我一些關鍵字,請不要整個解決方案。
什麼關於使用GROUP_CONCAT然後爆炸結果的每個元素?哪一個更有效? – papelucho
@papelucho這將需要你在ID和名稱字段都做GROUP_CONCAT,所以你會有兩個字段爆炸和填充。另一方面,結果集中的行數將少於要遍歷的行數。我不能說哪一個在操作上更有效率(可以測試這個),但我可以說使用GROUP_CONCAT來做這件事非常非常規。如果您需要通過JOIN獲取數據(例如,可能是來自另一個表的類別描述字段),我所建議的方法也會更容易處理。 –