我使用VARBINARY(16)
数据类型存储ips。我只想选择ipv4 ips。是否可以按VARBINARY
(或VARCHAR
(中使用的长度筛选列?像这样的
SELECT INET6_NTOA(`ip`) from `TABLE` where BYTESLENGHT(`ip`) = 4
我会使用LENGTH()
,它以字节为单位返回字符串的长度。它同时支持VARCHAR或VARBINARY。
mysql> create table mytable (ip varbinary(16));
mysql> insert into mytable set ip = inet6_aton('192.168.1.1');
mysql> insert into mytable set ip = inet6_aton('fdfe::5a55:caff:fefa:9089');
mysql> select length(ip) from mytable;
+------------+
| length(ip) |
+------------+
| 4 |
| 16 |
+------------+