参见英文答案 >
Display MySQL results by date5个
我正在使用以下SQL查询从按日期排序的内部联接中选择行.
我正在使用以下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.然后将此子查询连接到原始查询,以确定每个日期的第一个记录.
原文链接:https://www.f2er.com/php/240073.htmlSELECT 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