MySQL VARBINARY,其中字符串比较不起作用
我有一个MySQL表,其中的字段是varbinary。它们包含为快速查找编制索引的字符串。在一台服务器上,查找似乎工作正常。在另一台服务器上,它们返回空集。是什么导致整个服务器的结果不一致 表定义 服务器1 MySQL 5.6.26上的结果 服务器2 MySQL 5.5.44-0+deb8u1上的结果 转储值服务器1使用mysqldump 使用phpmyadmin转储服务器2的值MySQL VARBINARY,其中字符串比较不起作用,mysql,sql,string,where,varbinary,Mysql,Sql,String,Where,Varbinary,我有一个MySQL表,其中的字段是varbinary。它们包含为快速查找编制索引的字符串。在一台服务器上,查找似乎工作正常。在另一台服务器上,它们返回空集。是什么导致整个服务器的结果不一致 表定义 服务器1 MySQL 5.6.26上的结果 服务器2 MySQL 5.5.44-0+deb8u1上的结果 转储值服务器1使用mysqldump 使用phpmyadmin转储服务器2的值 为什么非二进制数据的数据类型为VARBINARY?这是MySQL的一种特殊编程技巧吗?抱歉,如果这是一个愚蠢的问题,
为什么非二进制数据的数据类型为VARBINARY?这是MySQL的一种特殊编程技巧吗?抱歉,如果这是一个愚蠢的问题,我不太了解MySQL。两台服务器上的SHOW CREATE TABLE的结果有差异吗?可能不同的默认设置会导致不同的行为
CREATE TABLE IF NOT EXISTS `%s` (
`url` varbinary(2000) NOT NULL,
`category` varbinary(64) NOT NULL,
`type` binary(1) NOT NULL,
PRIMARY KEY (`url`(256)),
KEY `category` (`category`),
KEY `type` (`type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
mysql> SELECT `category` FROM `blacklist` WHERE (`category`='porn') AND ((`type`='d' AND `url`='186.59') OR (`type`='d' AND `url`='209.35.186.59') OR (`type`='d' AND `url`='59')) LIMIT 0, 1;
+----------+
| category |
+----------+
| porn |
+----------+
1 row in set (0.00 sec)
mysql> SELECT `category` FROM `blacklist` WHERE (`category`='porn') AND ((`type`='d' AND `url`='186.59') OR (`type`='d' AND `url`='209.35.186.59') OR (`type`='d' AND `url`='59')) LIMIT 0, 1;
Empty set (0.00 sec)
INSERT INTO `blacklist` VALUES ('','ads','u'),('1.im.cz/reklama','ads','u'),('12.16.1.10/web_GIF','publicite','u'),('12.16.1.10/~web_ani','publicite','u');
INSERT INTO `blacklist` (`url`, `category`, `type`) VALUES
('', 0x706f726e, 0x64),
(0x312e696d2e637a2f72656b6c616d61, 0x616473, 0x75),
(0x31322e31362e312e31302f7765625f474946, 0x7075626c6963697465, 0x75),
(0x31322e31362e312e31302f7e7765625f616e69, 0x7075626c6963697465, 0x75);