教程集 www.jiaochengji.com
教程集 >  数据库  >  mysql  >  正文 学习mysql的大小写敏感查询

学习mysql的大小写敏感查询

发布时间:2015-10-24   编辑:jiaochengji.com
linux下默认mysql查询,where后面的条件是不去分大小写的。如果想要mysql查询时varchar字段大小写敏感,定义列时要加上binary。

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

复制代码 代码如下:
CREATE TABLE T1(
NAME VARCHAR(10) BINARY
);
 

或查询时加上binary,例如:
 

复制代码 代码如下:
SELECT * FROM T1 WHERE A=BINARY ''ABC'';

详见:http://www.jbxue.com/article/4681.html 有关Mysql的大小写敏感性。

mysql查询时,默认情况下是忽略对where条件里面的空格的。
如表A里面,name字段确实有zhangsan这个值,那么
 

复制代码 代码如下:
select * from A where name='zhangsan';
select * from A where name='zhangsan   ';(张三后面有一个或者多个空格)
 

这两个语句都能查的到。
网上查了查,原因好像是:官方文档上说是MySQL校对规则属于PADSPACE,对CHAR和VARCHAR值进行比较都忽略尾部空格,和服务器配置以及MySQL版本都没关系

mysql更改表的列属性:
 

复制代码 代码如下:
alter table status modify *** varchar(255) binary default null ;

您可能感兴趣的文章:
学习mysql的大小写敏感查询
有关Mysql的大小写敏感性
mysql开启慢查询日志的方法
mysql优化之如何定位效率较低的SQL
PHP MySQL Where子句学习
如何让mysql支持中文排序
php入门级教程:PHP大小写问题
mysql子查询的五种方式
php日期查询与数值转换的例子
mysql 按指定字段长度排序的示例代码

[关闭]
~ ~