gpt4 book ai didi

mysql - 如何使用相似的键连接两个表?

转载 作者:行者123 更新时间:2023-11-29 10:35:26 24 4
gpt4 key购买 nike

我正在尝试加入两个数据源,这两个数据源都是子网起始 IP 的关键。然而,每个中的起始 IP 的记录方式不同。我可以使用什么语法根据起始 IP(不带最后一个字符)连接两个表?

我需要构建一个包含每个表中的两个描述列的结果。

谢谢!

table 1:
"Starting IP" "Ending IP" "Description_1"
10.16.0.1 10.16.0.254 "REF#12345678"
10.16.1.1 10.16.1.254 "REF#987654321"
10.16.2.1 10.16.2.254 "REF#147258369"

table 2:
"Starting IP" "Ending IP" "Description_2"
10.16.0.0 10.16.0.255 "testing by Bill"
10.16.1.0 10.16.1.255 "production by Ann"
10.16.2.0 10.16.2.255 "VoIP by George"

desired query result:
"Starting IP" "Ending IP" "Description_1" "Description_2"
10.16.0.0 10.16.0.255 "REF#12345678" "testing by Bill"
10.16.1.0 10.16.1.255 "REF#987654321" "production by Ann"
10.16.2.0 10.16.2.255 "REF#147258369" "VoIP by George"

最佳答案

SUBSTRING_INDEX(str, delim, count) 将在遇到 count delim 之前返回字符串,并且可能会为您提供帮助。

SELECT table2.*, table1.Description_2
FROM table2
LEFT JOIN table1 ON
(substring_index(table2.`Starting IP`,'.',3)
=substring_index(table1.`Starting IP`,'.',3))

但是,这不会非常有效。不将其编码为字符串,而是将其编码为实际的位串,这将开启使用按位 AND 等逻辑函数的可能性,这可能会更有效。

关于mysql - 如何使用相似的键连接两个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46497538/

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