如何将所有值按日期分组?
我的sql表
id |date | price | description
1 | 2019-01-01 | 30 price 1
2 | 2019-01-04 | 50 price 2
3 | 2019-01-01 | 60 price 3
4 | 2019-01-04 | 20 price 4
5 | 2019-01-01 | 10 price 5
我的查询:
$result = mysql_query("SELECT * FROM newcosts ORDER BY id DESC ");
如果我愿意GROUP BY date
,我将放弃所有价格和说明。
while( $row = mysql_fetch_array($result)){
echo $row['date']."<br>";
echo $row['price']."<br>";
echo $row['description']."<br>";
}
我的输出:https://ibb.co/zN7zRTR。
我该怎么做?
2019-01-01
price 1 30
price 3 60
2019-01-04
price 2 50
price 4 20
答案 0 :(得分:1)
我认为您只需要按日期排序即可。这样的事情应该起作用:
$query = "SELECT * FROM newcosts ORDER BY date";
$date = NULL;
if ($result = $mysqli->query($query)) {
while ($row = $result->fetch_assoc()) {
$curr_date = $row['date'];
if ($date != $curr_date) {
$date = $curr_date;
echo $date . "<br>";
}
echo $row['description']. " " . $row['price'] . "<br>";
}
}
上述表示逻辑背后的想法是,对于每组日期,我们只打印一次日期。但是对于每条记录,我们始终会打印说明和价格。
注意:您是mysql_query
,这是已弃用的API。