我会努力解释这一点..所以请随时询问更多信息。
我正在使用 MySQL 数据库读取数据:
SELECT * FROM resource where date > DATE_SUB(now(), INTERVAL 12 MONTH) ORDER BY `date` DESC
这会产生这样的结果:
ID DATE STACK REF NAME LOCATION CREW
9 2016-01-01 06:34:50 A6YH75F 12 Local List SPAIN 1A
8 2016-01-01 06:34:48 QWE343 23 POINT ONE GERMANY 3A
7 2016-01-01 06:34:46 WER342 43 Insite UK 4A
6 2016-01-01 06:34:44 WFF5G1 34 LANWise FRANCE 5A
5 2016-01-01 06:34:42 2D3D35 21 Polent USA 7A
4 2016-01-01 06:34:40 8541FW 33 Rosta UK 4B
3 2015-12-30 16:48:23 A6YH75F 12 Local List SPAIN 2A
2 2015-11-21 14:32:01 FFCWF4 34 LANWISE FRANCE 6A
1 2015-10-14 11:02:22 POI8H6 75 BALAND IRELAND 6B
这是很难解释的地方。
我正在遍历结果并将结果回显到 <table>
中
当它上线时,每个 NAME 可能会出现数百个条目,我想做的是根据某些特定标准突出显示输出。
例如:
如果一个 NAME 出现多次,则比较该名称的 STACK & REF 的最新值和先前值。 (所以比较每个名字的最后两个条目)
如果它们不同,则突出显示该条目的输出。
即:
我可以看到 Local List
在列表中出现两次。第一个日期戳是 2016-01-01 06:34:50
然后在 2015-12-30 16:48:23
没关系。在这两种情况下,STACK 和 REF 都是相同的。
但是LANWISE
也出现了两次,但它的 STACK 在较新的场合有所不同。我如何标记它并突出显示 LANWISE 的最新条目。
我也在查看过去 65 天内是否有条目出现。
所以看列表BALAND
最后出现 2015-10-14 11:02:22
所以这已经超过 65 天了,从那以后他们就再也没有出现过。如何突出显示这一点?
谢谢
最佳答案
您可以使用以下查询返回所需的所有信息以确定需要突出显示的记录:
SELECT ID, `DATE`, STACK, REF, NAME, LOCATION, CREW,
--Calculate difference between `DATE` field and current date
DATEDIFF(NOW(), `DATE`) AS DaysDiff,
-- Get the count of newer records having the same NAME
COALESCE((SELECT COUNT(*)
FROM resource AS r2
WHERE r2.NAME = r1.NAME AND r2.`Date` > r1.`Date`), 0) CountNewer,
-- Find wether an older record exists having the same NAME and
-- different REF or STACK or both
COALESCE((SELECT 1
FROM resource AS r3
WHERE r3.NAME = r1.NAME AND
r3.`Date` < r1.`Date` AND
(r3.REF <> r1.REF OR r3.STACK <> r1.STACK)), 0) IsHighlighted
FROM resource AS r1
WHERE date > DATE_SUB(now(), INTERVAL 12 MONTH)
ORDER BY `date` DESC
关于php - 突出显示 MySQL 数据结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36431487/