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个
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则更少. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
