Chinaunix首页 | 论坛 | 博客
  • 博客访问: 480670
  • 博文数量: 111
  • 博客积分: 2332
  • 博客等级: 大尉
  • 技术积分: 1187
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-29 11:22
文章分类

全部博文(111)

文章存档

2013年(9)

2012年(28)

2011年(17)

2010年(28)

2009年(29)

我的朋友

分类: Mysql/postgreSQL

2011-03-15 17:47:24

linux下默认mysql查询是,where后面的条件是不去分大小写的。如果要是mysql查询的时候varchar字段大小写敏感,定义列的时候加上binary。如:

CREATE TABLE T1(
NAME VARCHAR(10) BINARY
);

或者查询的时候加上binary,如:
SELECT * FROM T1 WHERE A=BINARY ''ABC'';
详见:http://blog.csdn.net/ivan820819/archive/2009/02/24/3931021.aspx


mysql查询的时候,默认情况下是对where条件里面的空格忽略的。
如表A里面,name字段确实有zhangsan这个值,那么
select * from A where name='zhangsan';
select * from A where name='zhangsan   ';(张三后面有一个或者多个空格)
这两个语句都能查的到。
网上查了查,原因好像是:官方文档上说是MySQL校对规则属于PADSPACE,对CHARVARCHAR值进行比较都忽略尾部空格,和服务器配置以及MySQL版本都没关系


mysql更改表的列属性
alter table status modify *** varchar(255) binary default null ;
阅读(2229) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~