最近遇到一个MySQL的问题,问题如下:
[code="java"]
CREATE TABLE authentication
(ID
bigint(20) NOT NULL AUTO_INCREMENT,DEVUSERNAME
varchar(255) COLLATE utf8_bin DEFAULT NULL,DEVPASSWORD
varchar(255) COLLATE utf8_bin DEFAULT NULL,DEVROLENAME
varchar(255) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (ID
),
KEY Idx_DEVROLENAME
(DEVROLENAME
)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COLLATE=utf8_bin ;
insert into authentication (ID,DEVUSERNAME,DEVPASSWORD,DEVROLENAME) values(8,'1.0','1.0','1.0');
update authentication set DEVROLENAME='1.0TR069\r\n' where id =8;
commit;
[/code]
使用如下语句
select * from authentication where DEVROLENAME like "1.0TR069%";
[color=red]不能查询出这条记录。[/color]
[color=blue]如果删除索引Idx_DEVROLENAME, 再查询则可以查出来。[/color]
不知道什么原因,望指点。
测试版本 MySQL 5.1.24 linux版