Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL VARBINARY,其中字符串比较不起作用_Mysql_Sql_String_Where_Varbinary - Fatal编程技术网

MySQL VARBINARY,其中字符串比较不起作用

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的一种特殊编程技巧吗?抱歉,如果这是一个愚蠢的问题,

我有一个MySQL表,其中的字段是varbinary。它们包含为快速查找编制索引的字符串。在一台服务器上,查找似乎工作正常。在另一台服务器上,它们返回空集。是什么导致整个服务器的结果不一致

表定义

服务器1 MySQL 5.6.26上的结果

服务器2 MySQL 5.5.44-0+deb8u1上的结果

转储值服务器1使用mysqldump

使用phpmyadmin转储服务器2的值


为什么非二进制数据的数据类型为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);