MySQL计算查询中的重复字段

时间:2017-10-29 15:21:14

标签: mysql

我有以下查询

SELECT m.uid
      ,m.ttime
      ,m.mac
      ,m.vendor
      ,m.ssid
      ,m.rssi
      ,k.note1
      ,k.note2 
FROM monitor m 
LEFT OUTER JOIN known k ON m.mac=k.mac
WHERE (`ttime` > DATE_SUB(now(), INTERVAL 1 DAY)) 
AND (monitor.mac !='b8:27:eb:91:b5:bb')
ORDER BY monitor.uid desc

将其格式化为表格。我希望该表有一个额外的列,给出monitor.mac出现在表中的次数。这表明它是新的还是经常出现。

SQL查询作为字符串传递给php页面以供显示,所以我只能调整查询,而不是使用另一个带有自己查询的变量。

编辑以从现有查询中添加示例输出行:

3637
2017-10-29 08:57:20
6c:88:14:2e:cc:fc
Intel Corporate
GHC
-65
NULL
NULL

想要添加此MAC出现的次数

1 个答案:

答案 0 :(得分:0)

如果您希望特定的监视器列出重复的次数,您可以简单地使用GROUP BY和条件搜索。

SELECT m.uid
      ,m.ttime
      ,m.mac
      ,m.vendor
      ,m.ssid
      ,m.rssi
      ,k.note1
      ,k.note2 
FROM monitor m 
LEFT OUTER JOIN known k ON m.mac=k.mac
WHERE (`ttime` > DATE_SUB(now(), INTERVAL 1 DAY)) 
AND (monitor.mac !='b8:27:eb:91:b5:bb')
GROUP BY monitor.mac
HAVING count(*) > 1
ORDER BY monitor.uid desc