MySQL字段值如何區(qū)分大小寫問題
MySQL字段值如何區(qū)分大小寫
注意:設(shè)置的是字段值區(qū)分大小寫
1. 查詢時指定大小寫敏感,加關(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)測試數(shù)據(jù)
①查詢小寫字母
select * from binary_test where name ='qwerty';

②查詢大寫字母
select * from binary_test where binary name ='QWERTY';

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

