php – 如何检测选择查询中的日期是否发生更改

前端之家收集整理的这篇文章主要介绍了php – 如何检测选择查询中的日期是否发生更改前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Display MySQL results by date5个
我正在使用以下SQL查询从按日期排序的内部联接中选择行.
SELECT    *
FROM      clubnights 
INNER     JOIN club ON clubnights.club = club.club_ID 
WHERE     visibility = 0
AND       date >= CURDATE()
ORDER BY  clubnights.date ASC

然后我通过PHP while循环加载我的HTML中的所有数据.

我的目标是在任何给定日期的每个部分之上回显HTML标题.

因此,当通过select查询检测到日期更改时,我希望检测(通过PHPsql).基本上,我想比较最后一个’日期’列和当前列,如果它们不匹配,我将通过PHP回显一些东西.

举个例子,假设以下是行:

2016-09-16 - Row 1 // Detect 'change' here as it's the first row

2016-09-16 - Row 2

2016-09-16 - Row 3

2016-09-16 - Row 4

2016-09-16 - Row 5

2016-09-17 - Row 6 // Detect change here as date has changed

2016-09-17 - Row 7

2016-09-17 - Row 8

编辑:我正在使用MysqL

如果我理解您的要求,那么对于共享相同日期的记录组,具有最小club_ID的记录是该组中的第一个记录.在下面的答案中,我使用子查询来查找每个日期的最小club_ID.然后将此子查询连接到原始查询,以确定每个日期的第一个记录.
SELECT clubnights.*,club.*,CASE WHEN t.club_ID IS NOT NULL THEN 'change' END AS date_changed
FROM clubnights
INNER JOIN club
    ON clubnights.club = club.club_ID
LEFT JOIN
(
    SELECT MIN(club.club_ID) AS club_ID,clubnights.date AS date
    FROM clubnights
    INNER JOIN club
        ON clubnights.club = club.club_ID
    GROUP BY clubnights.date
) t
    ON clubnights.date = t.date AND
       club.club_ID    = t.club_ID

请注意,我更喜欢这个解决方案来处理PHP表示层中的问题,因为MysqL被设计为有效地处理数据,而PHP则更少.

原文链接:https://www.f2er.com/php/240073.html

猜你在找的PHP相关文章