I was doing a little experimentation wielding ipv6 with perl and mysql:
So, given this table schema:
mysql> desc binary_i;
+-------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | ip | binary(255) | NO | | NULL | | | mask | binary(255) | NO | | NULL | | +-------+------------------+------+-----+---------+----------------+ 3 rows in set (0.00 sec)
Can anyone explain this??
Show a row:
mysql> select * from binary_i limit 1\G
*************************** 1. row *************************** id: 1 ip: 00100110000001101111010000000000000010000000000100100000000000000000000101110010000000000010010000000000000000010000000001010101 mask: 11111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000 1 row in set (0.00 sec)
Copy the ip value from that into a select statement:
mysql> select * from binary_i where ip = '00100110000001101111010000000000000010000000000100100000000000000000000101110010000000000010010000000000000000010000000001010101';
Empty set (0.01 sec)
Empty??
Try again with double quotes:
mysql> select * from binary_i where ip = "00100110000001101111010000000000000010000000000100100000000000000000000101110010000000000010010000000000000000010000000001010101";
Empty set (0.01 sec)
Still Empty??
Try it as a like statement with preceding and succeeding % symbols:
mysql> select * from binary_i where ip like '100110000001101111010000000000000010000000000100100000000000000000000101110010000000000010010000000000000000010000000001010101%' limit 1;
+----+---------------------------------------------------------------------------------------------------------------------------------------- | id | ip +----+---------------------------------------------------------------------------------------------------------------------------------------- | 1 | 00100110000001101111010000000000000010000000000100100000000000000000000101110010000000000010010000000000000000010000000001010101 +----+---------------------------------------------------------------------------------------------------------------------------------------- 1 row in set (0.00 sec)
Success. Using the same string as I did in the previous WHERE clauses. I'd be a lot less baffled if I weren't COPY and PASTING the binary string directly from an existing entry in the db.
No comments:
Post a Comment