mysql - 选择所有具有相同 ips 的人
问题描述
有一张用户表users
:
+----+---------+------------+
| id | login | ip |
+----+---------+------------+
| 1 | user1 | 127.0.0.1 |
| 2 | user2 | 127.0.0.1 |
+----+---------+------------+
ETC...
必须用 1 选择所有用户ip
。
SELECT u1.id, u1.login, u1.ip FROM users AS u1 LEFT JOIN users as u2 ON u1.ip = u2.ip;
我尝试过,它不起作用,不是我需要选择的。
解决方案
WITH cte AS ( SELECT *, COUNT(*) OVER (PARTITION BY ip) cnt
FROM source_table )
SELECT * FROM cte WHERE cnt > 1
对于 MySQL 5.x 使用
SELECT *
FROM source_table t1
WHERE EXISTS ( SELECT NULL
FROM source_table t2
WHERE t1.ip = t2.ip
AND t1.id != t2.id )
推荐阅读
- entity-framework - 查看实体框架核心数据库中的数据
- python - Python在循环内到达变量
- python - Python 返回最常见的元素
- jquery - Linq MVC 中的 DateDiff 等效项
- android - Android:尽管代码不再存在,但仍神秘地创建了来自过去实现的数据库
- javascript - HTML 未从 JavaScript 脚本更改
- javascript - CSS样式我的页面,对不起,我是菜鸟
- javascript - Javascript bot 提示用户?
- python - 比较 .txt 文件中的 .jpg 文件并合并数据
- python - 变量赋值存储在内存的什么位置?