MySQL字段值如何區(qū)分大小寫(xiě)問(wèn)題
MySQL字段值如何區(qū)分大小寫(xiě)
注意:設(shè)置的是字段值區(qū)分大小寫(xiě)
1. 查詢(xún)時(shí)指定大小寫(xiě)敏感,加關(guān)鍵字‘BINARY’
(1)刪表,建表,新增數(shù)據(jù)
drop table binary_test;
CREATE TABLE binary_test (
`id` INT unsigned PRIMARY key NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into binary_test (name) values ('QWERTY');
insert into binary_test (name) values ('qwerty');
(2)測(cè)試數(shù)據(jù)
①查詢(xún)小寫(xiě)字母
select * from binary_test where name ='qwerty';

②查詢(xún)大寫(xiě)字母
select * from binary_test where binary name ='QWERTY';

2. 定義表結(jié)構(gòu)時(shí)指定字段大小寫(xiě)敏感 關(guān)鍵字“BINARY”指定guid字段大小寫(xiě)敏感
drop table binary_test;
CREATE TABLE binary_test (
`id` INT unsigned PRIMARY key NOT NULL AUTO_INCREMENT,
`name` varchar(255) BINARY NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into binary_test (name) values ('QWERTY');
insert into binary_test (name) values ('qwerty');
注意 name字段使用binary修飾了。
select * from binary_test where name ='qwerty';

3. 修改排序規(guī)則(COLLATION)
show variables like ‘collation_database';
Collation以 “_ci"結(jié)尾的不區(qū)分大小寫(xiě)(ci——Case Ignore),以”_bin"或者"_cs"結(jié)尾的區(qū)分大小寫(xiě)
將Collation改為 utf8_bin(大小寫(xiě)敏感的)
可以為庫(kù)、表、列指定Collation。
優(yōu)先級(jí)為 列>表>庫(kù)
CREATE DATABASE sys_userCOLLATE utf8_bin; ALTER TABLE sys_userDEFAULT CHARACTER SET=utf8 COLLATE=utf8_bin; ALTER TABLE sys_user MODIFY COLUMN username varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
ALTER TABLE sys_user MODIFY COLUMN username VARCHAR(255) BINARY
MySql查詢(xún)區(qū)分大小寫(xiě)
在mysql中,可以利用select查詢(xún)語(yǔ)句配合binary關(guān)鍵字來(lái)區(qū)分大小寫(xiě),select語(yǔ)句用于查詢(xún)數(shù)據(jù),binary關(guān)鍵字用于區(qū)分大小寫(xiě),語(yǔ)法為“select * from 表名 WHERE binary 字段=字段值”。
select count(*) from ct_brand_info where binary brand_abbr = 'NA'
在SQL語(yǔ)句中,BINARY關(guān)鍵字用于進(jìn)行二進(jìn)制比較。當(dāng)你使用BINARY關(guān)鍵字時(shí),數(shù)據(jù)庫(kù)會(huì)以二進(jìn)制方式比較所有的字符串,包括大小寫(xiě)。
在你的示例中,SELECT COUNT(*) FROM ct_brand_info WHERE BINARY brand_abbr =
'NA’的目的是計(jì)算在ct_brand_info表中,brand_abbr列中等于’NA’的記錄數(shù)。
使用BINARY的關(guān)鍵字在這里有兩方面的影響
1.大小寫(xiě)敏感性:BINARY使比較區(qū)分大小寫(xiě)。這意味著它不僅會(huì)匹配完全等于’NA’的字符串,還會(huì)匹配等于’na’或’Na’等其他大小寫(xiě)組合的字符串。
2.二進(jìn)制比較:BINARY將字符串轉(zhuǎn)換為二進(jìn)制格式進(jìn)行比較。這使得比較更精確,因?yàn)樗紤]了每個(gè)字符的二進(jìn)制表示。
總結(jié)起來(lái),BINARY關(guān)鍵字在你的SQL查詢(xún)中的作用是使字符串比較區(qū)分大小寫(xiě)并使用二進(jìn)制格式進(jìn)行比較。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
mysql數(shù)據(jù)庫(kù)limit的四種用法小結(jié)
mysql數(shù)據(jù)庫(kù)中l(wèi)imit子句可以被用于強(qiáng)制select語(yǔ)句返回指定的記錄數(shù),本文主要介紹了mysql數(shù)據(jù)庫(kù)limit的四種用法小結(jié),感興趣的可以了解一下2023-10-10
Mysql使用insert插入多條記錄 批量新增數(shù)據(jù)
這篇文章主要介紹了Mysql使用insert插入多條記錄批量新增數(shù)據(jù),需要的朋友可以參考下2017-08-08
MySQL修改innodb_data_file_path參數(shù)的一些注意事項(xiàng)
這篇文章主要給大家介紹了關(guān)于MySQL修改innodb_data_file_path參數(shù)的一些注意事項(xiàng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
MySQL?原理與優(yōu)化之Limit?查詢(xún)優(yōu)化
這篇文章主要介紹了MySQL?原理與優(yōu)化之Limit?查詢(xún)優(yōu)化,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08

