繁体   English   中英

如何在MySQL中将不同表中的行的一部分彼此匹配?

[英]How to match part of rows in different tables with each other in MySQL?

我有一个名为“ urls”的表,其中包含不同国家的域名,如下所示:

Domain
Paypal.com
wellsfargo.co.uk
sparkasse.fe.de

等等...

我还有另一个名为“国家”的表,其中包含tlds及其相关国家,如下所示:

tld        country
nl          netherlands
de          germany
uk          united kingdom
etc...

我不知道如何创建一个匹配项,以便能够从“ URL”表中的域中提取“ country”表中的国家/地区名称。有人可以帮助我吗?

使用以下JOIN条件联接两个表:

ON ( country.tld = RIGHT(urls.domain, CHAR_LENGTH(tld)) )

请注意,如果存在这样的索引,则该查询无法在urls.domain使用索引。 我将在插入单独的列(在urls )时预先计算urls.domain的顶级域。 在此新列上设置索引,并在您的JOIN条件下使用此列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM