我正在開發一個具有IPv6模型的Rails應用程序。我存入兩個32位整數的IPv6地址和一個64位int:關於無符號bigint的MySQL BETWEEN
+-----------------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------+---------------------+------+-----+---------+----------------+
| global_routing_prefix | int(11) unsigned | YES | | NULL | |
| subnet_identifier | int(11) unsigned | YES | | NULL | |
| interface_identifier | bigint(20) unsigned | YES | | NULL | |
不幸的是,當我去找到IP地址範圍,MySQL不會把所有的算術與簽署bigints,所以:
mysql> select 2 BETWEEN 0 AND 18446744073709551614;
+--------------------------------------+
| 2 BETWEEN 0 AND 18446744073709551614 |
+--------------------------------------+
| 0 |
+--------------------------------------+
有沒有我可以做的工作,還是我需要通過interface_identifier分成2個unsigned int?
感謝, 唐納德