gpt4 book ai didi

mysql - 使用通配符跨两列查找 MySQL 近重复项

转载 作者:行者123 更新时间:2023-11-29 07:30:58 25 4
gpt4 key购买 nike

我有一个包含 id、first_name 和 last_name 列的表。我想获得 last_name 和 first_name 的第一个字符重复的行列表。我正在四处摸索,感觉里面有一个 COUNT('WHERE'),但不太明白。

本质上,我正在寻找可能的重复项。因此,从这个子集中:

+------+-----------+-----------+-------------+------------+
| id | firstName | lastName | dateOfBirth | createdOn |
+------+-----------+-----------+-------------+------------+
| 143 | Susie | Wong | 2015-12-01 | 2016-07-11 |
| 1268 | Dale | Armstrong | 2017-01-01 | 2017-01-04 |
| 1435 | Olive | Armstrong | 1941-03-11 | 2017-03-08 |
| 2013 | Timotini | Attilio | 1932-01-01 | 2017-08-21 |
| 2014 | Olinda | Attilio | 1938-01-01 | 2017-08-21 |
| 3076 | Sue | Armstrong | 1951-06-01 | 2018-06-22 |
| 3079 | Susan | Armstrong | 1951-09-15 | 2018-06-22 |
+------+-----------+-----------+-------------+------------+

我想要一个仅返回 3076 和 3079(Sue 和 Susan Armstrong)的查询,该查询基于查找匹配的姓氏和匹配的名字首字母,如下所示:

+------+-----------+-----------+-------------+------------+
| id | firstName | lastName | dateOfBirth | createdOn |
+------+-----------+-----------+-------------+------------+
| 3076 | Sue | Armstrong | 1951-06-01 | 2018-06-22 |
| 3079 | Susan | Armstrong | 1951-09-15 | 2018-06-22 |
+------+-----------+-----------+-------------+------------+

最佳答案

这是使用 existsleft 的一个选项:

select *
from yourtable y
where exists (
select 1
from yourtable y2
where y.id != y2.id
and y.lastname = y2.lastname
and left(y.firstname,1) = left(y2.firstname,1)
)

关于mysql - 使用通配符跨两列查找 MySQL 近重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51293325/

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