2015-09-18 56 views
2

我無法找到如何分組7個MySQL列的值。
列:如何使用PHP MySQL對列的值進行分組?

ex_MONDAY 
ex_TUESDAY 
ex_WEDNESDAY 
ex_THURSDAY 
ex_FRIDAY 
ex_SATURDAY 
ex_SUNDAY 

值都或多或少相同爲例

15-00035/15-00035/12-00014/11-00004/11-00004/11-00004/11-00004/

我想它的基值,我可以在while ($z < mysql_num_rows($result))使用它們,作爲結果,我會得到這樣的事情:

 
15-00035 
12-00014 
11-00004 

由於分組只有3個不同的值。

我目前使用此代碼,但它似乎不工作:

$result=mysql_query("SELECT ex_MONDAY,ex_TUESDAY,ex_WEDNESDAY,ex_THURSDAY,ex_FRIDAY,ex_SATURDAY,ex_SUNDAY FROM mytable WHERE week=38 AND year=2015 GROUP BY ex_MONDAY,ex_TUESDAY,ex_WEDNESDAY,ex_THURSDAY,ex_FRIDAY,ex_SATURDAY,ex_SUNDAY"); 

$fetch=mysql_fetch_row($result); 

echo "$fetch[0]"; //returns 15-00035 
echo "$fetch[1]"; // returns no value 
echo "$fetch[2]"; // returns 11-0004 
+0

'DISTINCT'作用於不同的行,但不作用於值es在一行上。 – syck

+0

停下。見正常化。數據庫表格不是電子表格。 – Strawberry

+0

@Kuya,在沒有聚合的情況下,* only *原因GROUP BY是*永遠*更好的選擇是它的執行速度比DISTINCT快。在我看來,這是不幸的,但是你去了。 – Strawberry

回答

1

使用PHP函數array_unique()array_values()

$result=mysql_query("SELECT ex_MONDAY,ex_TUESDAY,ex_WEDNESDAY,ex_THURSDAY,ex_FRIDAY,ex_SATURDAY,ex_SUNDAY FROM mytable WHERE week=38 AND year=2015"); 
$fetch = array_values(array_unique(mysql_fetch_row($result))); 

剔除掉空值,另外使用array_filter()

$fetch = array_values(array_unique(array_filter(mysql_fetch_row($result)))); 
+0

看起來不起作用。我得到「注意:未定義偏移量:1」「注意:未定義偏移量:2」它只顯示15-00035。 – BackTrack57

+0

我不在乎鑰匙。用'array_values()'嘗試修改後的解決方案。 – syck

+0

它沒有更多的錯誤,它顯示15-00035/12-00014 /沒有值更好的工作。難道是因爲我有沒有像ex_SATURDAY和ex_SUNDAY那樣的值,所以它會停止?感謝您的耐心等待 – BackTrack57

相關問題