gpt4 book ai didi

MySQL 查询使用 REGEXP 匹配前 7 个字符来查找重复项

转载 作者:行者123 更新时间:2023-11-29 14:06:10 25 4
gpt4 key购买 nike

SELECT nl.legal_name, nl.city, c.description 'Country', it.lei, sec.sym
FROM name_loc nl
INNER JOIN ident_tbl_tmp it ON nl.fk_ident_id = it.id
INNER JOIN sym_exch_cnty sec ON it.fk_sec_id = sec.id
INNER JOIN countries c ON nl.fk_cnty_id = c.id
WHERE legal_name REGEXP '^For'
limit 100;

使用上述查询将返回 500 多行数据。部分输出为:

输出:

+------------------------------------------+--------------+----------------+----------------------+--------------+
| legal_name | city | Country | lei | sym |
+------------------------------------------+--------------+----------------+----------------------+--------------+
| FOREFRONT GROUP LTD HKD0.01(SUB | PENDING | HONG KONG | NA | 2903.HK |
| FOREFRONT HOLDINGS | PENDING | UNITED STATES | NA | FFHN |
| FOREIGN & COL INV TR | PENDING | UNITED STATES | NA | FLIVF |
| Foreign & Colonial Investment Trust | PENDING | NEW ZEALAND | NA | FCT.NZ |
| Foreign & Colonial Investment Trust | PENDING | UNITED KINGDOM | NA | FRCL.L |
| Foreign & Colonial Investment Trust PLC | London | UNITED KINGDOM | 8VHDVYVI7W11JH2PAC61 | NA |
| Foreland | PENDING | SINGAPORE | NA | E1:B0I.SI |
| Foreland | PENDING | SINGAPORE | NA | E2:B0I.SI |

我需要一个查询,当前“n”个字符匹配且国家/地区相同时,该查询将返回结果。

这将是前 7 个字符匹配的正确结果:

+------------------------------------------+--------------+----------------+----------------------+--------------+
| legal_name | city | Country | lei | sym |
+------------------------------------------+--------------+----------------+----------------------+--------------+
| Foreign & Colonial Investment Trust | PENDING | UNITED KINGDOM | NA | FRCL.L |
| Foreign & Colonial Investment Trust PLC | London | UNITED KINGDOM | 8VHDVYVI7W11JH2PAC61 | NA |
| Foreland | PENDING | SINGAPORE | NA | E1:B0I.SI |
| Foreland | PENDING | SINGAPORE | NA | E2:B0I.SI |

这将是前 14 个字符匹配的正确结果:

+------------------------------------------+--------------+----------------+----------------------+--------------+
| legal_name | city | Country | lei | sym |
+------------------------------------------+--------------+----------------+----------------------+--------------+
| Foreign & Colonial Investment Trust | PENDING | UNITED KINGDOM | NA | FRCL.L |
| Foreign & Colonial Investment Trust PLC | London | UNITED KINGDOM | 8VHDVYVI7W11JH2PAC61 | NA |

我尝试过各种子查询,但没有成功。我认为我可能需要一个函数或过程,但我不确定。

最佳答案

您可以简单地GROUP BY Country, LEFT(legal_name, 7)。这将确保您对于国家/地区和名称前缀的每个组合仅获得一行输出。您无法影响该行的位置。如果您想跟踪原始行数,您甚至可以添加列 COUNT(*) AS number_of_duplicates

关于MySQL 查询使用 REGEXP 匹配前 7 个字符来查找重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14311676/

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