0
我有表:GROUP BY部分
ID_table, User, Multi_ID, Action, Date, ...
100 , JN , 0 , test1 , 1.1.2017
101 , DK , 51 , test2 , 3.1.2017
102 , JN , 51 , test2 , 3.1.2017
103 , LP , 0 , test3 , 3.1.2017
104 , DK , 52 , test4 , 5.1.2017
105 , LP , 52 , test4 , 5.1.2017
106 , KH , 52 , test4 , 5.1.2017
我想使GROUP BY Multi_ID,但僅限於Multi_ID> 0 如果Multi_ID = 0 - 沒有GROUP BY ...:
Date Users Action
1.1.2017 (JN) test1
3.1.2017 (DK,JN) test2
3.1.2017 (LP) test3
5.1.2017 (DK,LP,KH) test4
有我的代碼,而無需溶液Multi_ID = 0
$sql="SELECT * , GROUP_CONCAT(DISTINCT User separator ',') AS Us
FROM table
GROUP BY Multi_ID
ORDER BY Date ASC";
$result = MySQL_Query($sql);
由於
你想要的結果是什麼? – Blank
在單個查詢中 - 不,這是不可能的。分組依據適用於整個結果集。你可以做的是編寫2個單獨的查詢,並使用'union'結合它們。然而,你的第二個查詢沒有任何意義,因爲它有一個單獨的聚合函數沒有一個組,因爲它會將結果集合合成一條記錄。因此'select *'部分沒有任何意義。你必須詳細描述你在這裏想要達到的目標。 – Shadow
@Shadow我認爲這是可能的。可以引入一個新列,等於'Multi_ID> 0的'Multi_ID',否則引入一個新的Guid,並且在這個列上組。 – user5226582