公司網站有需求對用戶名驗證要驗證大小寫。其實剛開始他注冊的時候就就都是大小寫,所以沒有必要做大小寫驗證了。但是現在要登陸的驗證大小寫,那在注冊的時候也要對此進行驗證。
但是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項