Je travaille sur une application rails qui a un modèle IPv6. Je stocker l'adresse IPv6 dans 2 ints 32 bits et un entier 64 bits:MySQL BETWEEN sur unsigned bigint
+-----------------------+---------------------+------+-----+---------+----------------+
| 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 | |
Malheureusement, quand je vais trouver les adresses IP dans une gamme, MySQL fait toutes les opérations arithmétiques avec bigints signés, donc:
mysql> select 2 BETWEEN 0 AND 18446744073709551614;
+--------------------------------------+
| 2 BETWEEN 0 AND 18446744073709551614 |
+--------------------------------------+
| 0 |
+--------------------------------------+
Y a-t-il un travail autour de ce que je peux faire, ou dois-je séparer par interface_identifier en 2 ints non signés?
Merci, Donald