gpt4 book ai didi

Mysql比较ip地址

转载 作者:行者123 更新时间:2023-12-03 21:10:39 25 4
gpt4 key购买 nike

我有一个存储 IP 地址及其位置的数据库。我只在表中存储 IP 地址的前 3 个网络 ID。

+-------------------+-----------------+
|ip_address(varchar)|location(varchar)|
+-------------------+-----------------+
| 1.2.3 | A |
| 1.2.4 | A |
| 1.22.33 | B |
| 1.100.99 | C |
+-------------------+-----------------+
假设我的 IP 是 1.2.3.4 或其他 1.100.99.20,我如何将 IP 与表进行比较以获取位置?

最佳答案

这是一个应该有效并且也可以索引的解决方案:

SELECT location
FROM WhateverTable
WHERE ip_address = SUBSTRING_INDEX(?, '.', 3)
您为 ? 提供值“1.100.99.20”的地方范围。

您应该知道您存储的 IP 地址具有误导性。官方 IP 地址格式允许缩短字符串,但不是您想的那样。例如:
mysql> select inet_ntoa(inet_aton('1.100.99'));
+----------------------------------+
| inet_ntoa(inet_aton('1.100.99')) |
+----------------------------------+
| 1.100.0.99 |
+----------------------------------+
我打赌你会期望它返回 1.100.99.0。

关于Mysql比较ip地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64039147/

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