mysql区别大小写我们只要在字段创建时这样写name varchar (20) binary,然后查询时这样写binary `user`=’www.phpfensi.com’即可解决,主要用到binary.
公司网站有需求对用户名验证要验证大小写,其实刚开始他注册的时候就就都是大小写,所以没有必要做大小写验证了,但是现在要登陆的验证大小写,那在注册的时候也要对此进行验证.
但是MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,这个字符集对大小写不敏感,因此在比较过程中中文编码字符大小写转换造成了这种现象.
后来找到一个利用binary临时解决办法,代码如下:
SELECT * FROM ·表名·WHERE binary `user`=’www.phpfensi.com’
主要关键字binary 有它你就可以区分大小写了,代码如下:
create table 表名 ( name varchar (20) binary );
如果哪些字段需要区分大小写在在设计表的就可以这样写.
解决办法二,如果你可以修改my.ini配置可以如下解决大小写问题.
A.表名区分大小写,在my.conf加入:ower_case_table_names = 0
其中 0:区分大小写,1:不区分大小写
B.插入查询时区分大小写,字段值需要设置BINARY属性,即可区分大小写.
设置的方法有多种,创建时设置:
- CREATE TABLE T(
- A VARCHAR(10) BINARY
- );
使用alter修改,代码如下:
ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY;
mysql table editor中直接勾选BINARY项. |