mysql - 选择具有多个相等列值的行

标签 mysql sql

我正在尝试编写一个 SQL 命令来返回每条记录,其中 nameagecity 列具有相同的值同表中的值。

id  name  age  city
1   John  22   London
2   John  22   London
3   Nancy 24   Tokyo

我已经找到this question ,看起来这正是我想要的,但不幸的是,当我运行以下命令时,PhpMyAdmin 开始加载但没有完成它,我收到一个 “网关超时错误” 所以我认为我是做错事。我不是一个 sql 向导,所以如果有人可以修复我的代码,我将非常感激。

我不太明白完整的代码,但我认为 tata2 是代表我的表名称的变量,但我不熟悉这个主题所以任何帮助都会有用的。

SELECT ta.name
      ,ta.age
      ,ta.city

FROM mytablename ta
WHERE (SELECT COUNT(*)
       FROM mytable ta2
       WHERE ta.name = ta2.name
       AND ta.age =ta2.age
       AND ta.city =ta2.city)>1

最佳答案

“TA”只是一个别名。它不是变量。它只是让您可以用速记方式引用表格,以便您的查询更加清晰。

如果您只想要重复值,那么您可以使用聚合函数和 HAVING 子句更轻松地完成此操作:

SELECT
    TA.name,
    TA.age,
    TA.city
FROM
    MyTableName TA
GROUP BY
    TA.name,
    TA.age,
    TA.city
HAVING
    COUNT(*) > 1;

我不确定为什么你的原始查询超时(除了你的表太大以至于该查询无法及时返回之外),但我注意到你没有语句终止符(PostgreSQL 的分号) 。我已经有几年没有使用 PostgreSQL 了,所以我不记得这是否是必需的,但我会添加它以确保确定。

关于mysql - 选择具有多个相等列值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36579988/

相关文章:

mysql - 查找MySQL中所有没有某个值的entry_ids

Mysql 从每组中查找多行

c# - ASP.NET 没有向 SQL 服务器发送命令

java - hibernate :Cannot add or update a child row: a foreign key constraint fails

mysql - 为什么 Visual Studio 无法打开源文件 "mysql.h"?

php - MySQL 查询具有两个日期字段的同一个表并按相同 ID 进行分组

MySQL Workbench 数据模型错误 1215 : Cannot add foreign key constraint

mysql - 数据库可以被完全覆盖 n 次而不会有截断数据的危险吗?

sql - db2 sql 脚本文件

mysql - 在查询中使用别名的查询构建器