我使用VARBINARY(16)数据类型存储IP.我只想 Select ipv4 IP.是否可以按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 |
+------------+

Mysql相关问答推荐

JOOQ-如何在一个查询中引用多个(但不是所有)表中的所有字段

默认情况下,MariaDB是否限制为本地主机?

在MySQL中使用FIRST_VALUE()

布尔值之间的 SQL less/greater 比较会产生意外结果

我是否需要在 N+1 列上建立索引,才能有效地在 N 列上执行 SELECT,并按其他列排序?

在MySQL查询中查找和替换表内的值

Mysql如何分行分词

如何在更新表单中使用 group by?在 SQL 中

如何在任何连续范围内获得最大值

进行 MySQL COUNT 查询

在 MySQL 中为多列创建索引以进行查询优化

SQL 查找边界之间的值

如何在 SQL 中的一行中查找最小值和最大值?

在mysql中将纪元数转换为人类可读的日期

INSERT ... 使用 WHERE 进行重复的密钥更新?

如何用一系列日期填充表格?

MySQL 删除多列

你能推荐一个免费的 Linux 轻量级 MySQL GUI 吗?

按 COUNT(*) 过滤?

mysql GROUP_CONCAT 重复