[英]Group by date (php, mysql)
我有一個mysql表
daten name sub rate
*******************************
09.22 Jonh some5 one
09.22 Jonh some2 two
09.22 Jonh some3 two
需要獲取HTML:
Jonh:
date some5 some2 some3
***********************
09.22 one two two
我做:
$str = "SELECT * FROM table WHERE name= '$name' group by daten";
$rts = mysql_query($str);
echo "<h1>".$name."</h1>";
echo "<table border=\"1\"><th>date</th> ";
while($row = mysql_fetch_array($rs)) {
echo "<th>".$row['sub'] . "</th></tr>";
echo "<tr><td>".$row['daten'] ."</td><td>".$row['rate']."</td></tr>";
}
echo "</table>";
但是,這樣的代碼在按日期分組時僅顯示第一個值。 沒有小組,一切都是錯誤的。
請告訴我哪里出了問題以及在哪里進行挖掘。
謝謝
您需要在單行中獲取所有數據,因此必須在查詢下使用if條件。 Mysql if函數基於條件返回值。 IF的上界是
if (expr, if_true_expr, if_false_expr)
如果expr的計算結果為TRUE,即expr不為NULL並且expr不為0,則IF函數返回if_true_expr,否則返回if_false_expr。 IF函數根據其使用方式返回數字或字符串。
SELECT
`name`
, MAX(IF(`rate` = 'one', `rate`, NULL)) some5
, MAX(IF(`rate` = 'two', `rate`, NULL)) some2
, MAX(IF(`rate` = 'two', `rate`, NULL)) some3
FROM
database1
GROUP BY
name;
使用此查詢:SELECT daten,GROUP_CONCAT(sub)作為FROM FROM table WHERE name ='$ name'的子項,按daten分組。 您將獲得預期的輸出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.