mysql - sql 查找唯一值但只显示今天的日期

标签 mysql sql

我正在努力编写一些 SQL 来提取 IP 地址。这是我目前所拥有的,但它打印了所有内容,所以我认为它没有考虑日期部分。

SELECT DISTINCT dest_ip FROM ips WHERE date >= 2017-11-23;

我想要的是从 dest_ip 字段中查看所有给定日期的唯一 IP 地址,然后检查它们是否已经存在于 dest_ip 字段中,如果不存在,则返回它们。

这是当前的数据库:

+----+------------+----------+------------------+------------------+------+
| id | date       | time     | source_ip        | dest_ip          | port |
+----+------------+----------+------------------+------------------+------+
|  1 | 2017-11-11 | 00:21:21 | 192.168.1.1      | 177.43.234.23    | 443  |
|  2 | 2017-11-11 | 14:21:07 | 192.168.1.1      | 177.43.234.45    | 443  |
|  3 | 2017-11-13 | 14:21:09 | 192.168.1.1      | 177.43.234.78    | 443  |
|  4 | 2017-11-23 | 14:21:09 | 192.168.1.1      | 177.43.234.78    | 80   |
|  5 | 2017-11-23 | 14:22:13 | 192.168.1.1      | 177.43.234.78    | 53   |
|  6 | 2017-11-23 | 13:37:13 | 192.168.1.1      | 8.8.8.8          | 53   |
+----+------------+----------+------------------+------------------+------+

我预计运行查询时只会返回 ID 6,因为这是当天唯一的新 IP 地址。

最佳答案

你想要这样的东西吗?

SELECT dest_ip FROM ips WHERE 
date >= 2017-11-23 and dest_ip NOT IN (SELECT dest_ip FROM ips WHERE 
date < 2017-11-23 group by dest_ip)
group by dest_ip

关于mysql - sql 查找唯一值但只显示今天的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47463059/

相关文章:

java - 如何在 Java 中使用 Apache ActiveMQ 实现基于条件的队列

mysql - 从sql中的连接中选择包含最大值的多行

php - 如何根据复选框输入回显多行数据?

mysql - Propel ORM 中的条件排序,条件中有一个点

mysql - 以多对多关系获取除管理员以外的所有用户

mysql - 如何找到计数 > 7 的值出现次数最多的方法

c# - 如何检查 SqlBulkCopy 上的列映射?

c# - 在 C# 中确定 SQL 查询参数的数据类型

sql - 如何根据前两列的值计算第三列?

php - 如何使用php和mysql创建视频上传和播放文件