如何按SQL输出的日期分组?

时间:2019-01-27 15:29:20

标签: php mysql

如何将所有值按日期分组?

我的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

1 个答案:

答案 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。