按长度筛选varbinary字段



我使用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 |
+------------+

最新更新