我的问题:我无法用mysql选择字段“binary”
这是查询(注意“不相等”):
SELECT *
FROM `pt_peers`
WHERE `info_hash` != '7f398565868f7f08f71d236b88e4e433d2311de8'
这就是结构:
CREATE TABLE IF NOT EXISTS `pt_peers` (
`info_hash` binary(20) NOT NULL,
`peer_id` binary(20) NOT NULL,
`compact` binary(6) NOT NULL,
`ip` char(15) NOT NULL,
`port` smallint(5) unsigned NOT NULL,
`state` tinyint(1) unsigned NOT NULL DEFAULT '0',
`updated` int(10) unsigned NOT NULL,
PRIMARY KEY (`info_hash`,`peer_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
当我直接选择哈希时,答案为空。 :/
脚本是:PeerTracker
答案 0 :(得分:1)
您似乎传递了一个40字节的十六进制数字ASCII表示字符串,其中表定义为包含20个字节的二进制数。
尝试使用十六进制文字符号表示二进制字符串:
SELECT *
FROM `pt_peers`
WHERE `info_hash` = x'7f398565868f7f08f71d236b88e4e433d2311de8'
有关详细信息,请参阅this。