前提・実現したいこと
SQLでの名前のあいまい検索で重複を探したいです。
バージョン
mysql
5.7.22
該当のソースコード
-- auto-generated definition create table table_name ( id int null, sei varchar(100) null, mei varchar(100) null ) charset = utf8mb4; insert table_name (id, sei, mei) VALUE (1, '田中', '二郎'); insert table_name (id, sei, mei) VALUE (2, '田中', '二郎2'); insert table_name (id, sei, mei) VALUE (3, '田中', '二郎3'); insert table_name (id, sei, mei) VALUE (4, '田中', '二郎4'); insert table_name (id, sei, mei) VALUE (5, '高橋', '太郎'); insert table_name (id, sei, mei) VALUE (6, '高橋', '太郎2'); insert table_name (id, sei, mei) VALUE (7, '高橋', '太郎3'); insert table_name (id, sei, mei) VALUE (8, '高橋', '太郎4'); insert table_name (id, sei, mei) VALUE (9, '斎藤2', '一郎9'); insert table_name (id, sei, mei) VALUE (10, '斎藤2', '一郎'); insert table_name (id, sei, mei) VALUE (11, '斎藤2', '一郎2'); insert table_name (id, sei, mei) VALUE (12, '斎藤2', '一郎3'); insert table_name (id, sei, mei) VALUE (13, '佐藤2', '四郎'); insert table_name (id, sei, mei) VALUE (14, '佐藤2', '四郎2'); insert table_name (id, sei, mei) VALUE (15, '佐藤2', '四郎3'); insert table_name (id, sei, mei) VALUE (16, '佐藤2', '四郎4'); insert table_name (id, sei, mei) VALUE (17, '佐藤2', '四郎5'); insert table_name (id, sei, mei) VALUE (18, '佐藤2', '四郎6'); SELECT CONCAT(sei, mei) as fullname FROM table_name GROUP BY fullname HAVING COUNT(*) > 1;
試したこと
SELECT CONCAT(sei, mei) as fullname, count(fullname) as count FROM table_name GROUP BY fullname HAVING COUNT(*) > 1;
期待値
id | fullname | count |
---|---|---|
1 | 田中二郎 | 4 |
10 | 高橋2太郎 | 4 |
1 | 斎藤2一郎 | 4 |
10 | 佐藤2四郎 | 5 |
・条件
sei : が完全一致 mei : 前方一致
上記の名前名前苗字
が18レコードあることを確認できるようにしたいです。