加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

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

发布时间:2020-05-25 10:26:48 所属栏目:PHP 来源:互联网
导读:参见英文答案 Display MySQL results by date5个 我正在使用以下SQL查询从按日期排序的内部联接中选择行. SELECT *FROM clubnights INNER JOIN club ON clubnights.club = club.club_ID WHERE

参见英文答案 > 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查询检测到日期更改时,我希望检测(通过PHP或SQL).基本上,我想比较最后一个’日期’列和当前列,如果它们不匹配,我将通过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则更少.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读