0

我的问题:我无法使用 mysql 选择字段“二进制”

结构数据库

这是查询(注意“不等于”):

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

4

1 回答 1

1

您似乎正在传递一个 40 字节的十六进制数字 ASCII 表示字符串,其中该表被定义为包含 20 个字节的二进制文件。

试试这个,对二进制字符串使用十六进制文字表示法:

SELECT *
FROM `pt_peers`
WHERE `info_hash` = x'7f398565868f7f08f71d236b88e4e433d2311de8'

有关更多信息,请参阅

于 2012-10-29T21:08:19.873 回答