php - 突出显示 MySQL 数据结果

标签 php mysql compare

我会努力解释这一点..所以请随时询问更多信息。

我正在使用 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/

相关文章:

php - PHP中NULL和null的区别

php - 如何使用 PHP 将原始 json 字符串存储在 cookie 中?

php - 编译失败 : missing terminating ] for character class

mysql - 带有 mysql 的 Entity Framework ,linux 和 windows 之间的表大写问题

Java比较对象列表以查找重复项并将它们放入新列表中

PHP 为什么我只能将 1 个数据插入我的数据库(mysql)

mysql - 如何在一行中更新多个json对象?

mysql - 将 select 授予除 Table1 之外的所有表

C - 比较 float 和 if 语句

c++ - 比较两个 TDateTime 变量