gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 21:08:55 30 4
gpt4 key购买 nike

我正在尝试编写一个 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/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com