MySQL區分大小寫


在使用MySQL查詢數據時發現,不管大小寫都能查詢到數據,也就是說其對大小寫不敏感,沒有區分大小寫。先看下面的案例:

1.演示案例

1)創建表插入數據

CREATE TABLE `user` (
  `username` varchar(255) DEFAULT NULL,
  `password` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO user(username, password) VALUES ('abc', '123');
INSERT INTO user(username, password) VALUES ('Abc', '456');
INSERT INTO user(username, password) VALUES ('bcd', '444');

2)查詢

select * from user where username = 'abc';

結果如下:

 查詢username是"abc"的結果把"Abc"的也查詢出來了。若需要區分大小寫,需要進行配置。

2.解決辦法

2.1方法一:查詢時區分

在查詢時,在where關鍵字后面添加binary關鍵字,那么就會區分大小寫去查詢。

select * from user where binary username = 'abc';

2.2方法二:修改字段屬性區分

字段默認的規則是ut8***_ci。以 “_ci" 結尾的表示不區分大小寫,以 “_bin" 結尾的表示區分大小寫。

修改需要區分大小寫的字段的校對規則為utf8****_bin ,需要進行大小寫區分

ALTER TABLE user MODIFY COLUMN username varchar(255) BINARY CHARACTER SET utf8 COLLATE utf8_bin;

修改后查詢,便會區分大小寫

select * from user where username = 'abc';

2.3方法三:創建表時區分

在創建表時指定binary,那么可以直接查詢,,也很方便。

CREATE TABLE `user` (
  `username` varchar(255) binary  DEFAULT NULL,
  `password` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM