公司网站有需求对用户名验证要验证大小写。其实刚开始他注册的时候就就都是大小写,所以没有必要做大小写验证了。但是现在要登陆的验证大小写,那在注册的时候也要对此进行验证。
但是MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,这个字符集对大小写不敏感,因此在比较过程中中文编码字符大小写转换造成了这种现象
后来找到一个利用binary临时解决办法
代码如下 | 复制代码 |
SELECT * FROM ·表名·WHERE binary `user`=’www.111cn.net’ |
主要关键字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项
时间: 2024-10-28 02:37:45