Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql:从二进制ip和子网获取IPv6二进制网络掩码_Mysql_Mariadb_Ipv6_Bitwise Operators - Fatal编程技术网

Mysql:从二进制ip和子网获取IPv6二进制网络掩码

Mysql:从二进制ip和子网获取IPv6二进制网络掩码,mysql,mariadb,ipv6,bitwise-operators,Mysql,Mariadb,Ipv6,Bitwise Operators,我有一个表,它将IPv6地址存储为二进制(16),子网存储为INT(3) 我认为通过以下操作获得网络掩码会很简单: SELECT ~INET6_ATON('::') << (128 - subnet); 非常感谢您的帮助 编辑:我完全误解了Maria的版本字符串,抱歉:-(5.5中的位操作限制为64位。(8.0放宽了限制。)。 5.5已经很老了。如果你升级,要么转储并重新加载,要么分3步升级:5.5->5.6->5.7->8.0) 您可能需要右移>。或者(5.5中的1位操作限制为6

我有一个表,它将IPv6地址存储为二进制(16),子网存储为INT(3)

我认为通过以下操作获得网络掩码会很简单:

SELECT ~INET6_ATON('::') << (128 - subnet);
非常感谢您的帮助


编辑:我完全误解了Maria的版本字符串,抱歉:-(

5.5中的位操作限制为64位。(8.0放宽了限制。)。 5.5已经很老了。如果你升级,要么转储并重新加载,要么分3步升级:5.5->5.6->5.7->8.0)


您可能需要右移
>
。或者
(5.5中的1位操作限制为64位。(8.0放宽了限制。)。
5.5已经很老了。如果你升级,要么转储并重新加载,要么分3步升级:5.5->5.6->5.7->8.0)


您可能想要右移
>
。或者
(1抱歉,我读错了版本字符串。它是Maria 10,所以128位字符串上的按位操作应该是可能的?@下划线EZ-MariaDB 10.1对应,大致相当于MySQL 5.6。我很确定它仍然对必要的位操作有64位限制。抱歉,我读错了版本字符串。它是Maria 10,所以128位字符串上的按位操作是可能的Ring应该是可能的?@下划线EZ-MariaDB 10.1对应,大致相当于MySQL 5.6。我很确定它在必要的位操作上仍然有64位的限制。
+-----------------+
| VERSION()       |
+-----------------+
| 10.1.30-MariaDB |
+-----------------+
SELECT HEX(~((1 << 8) - 1)); --> FFFFFFFFFFFFFF00