MySQL字段值如何區(qū)分大小寫問題
MySQL字段值如何區(qū)分大小寫
注意:設置的是字段值區(qū)分大小寫
1. 查詢時指定大小寫敏感,加關鍵字‘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. 定義表結構時指定字段大小寫敏感 關鍵字“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"結尾的不區(qū)分大小寫(ci——Case Ignore),以”_bin"或者"_cs"結尾的區(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關鍵字來區(qū)分大小寫,select語句用于查詢數(shù)據(jù),binary關鍵字用于區(qū)分大小寫,語法為“select * from 表名 WHERE binary 字段=字段值”。
select count(*) from ct_brand_info where binary brand_abbr = 'NA'
在SQL語句中,BINARY關鍵字用于進行二進制比較。當你使用BINARY關鍵字時,數(shù)據(jù)庫會以二進制方式比較所有的字符串,包括大小寫。
在你的示例中,SELECT COUNT(*) FROM ct_brand_info WHERE BINARY brand_abbr =
'NA’的目的是計算在ct_brand_info表中,brand_abbr列中等于’NA’的記錄數(shù)。
使用BINARY的關鍵字在這里有兩方面的影響
1.大小寫敏感性:BINARY使比較區(qū)分大小寫。這意味著它不僅會匹配完全等于’NA’的字符串,還會匹配等于’na’或’Na’等其他大小寫組合的字符串。
2.二進制比較:BINARY將字符串轉換為二進制格式進行比較。這使得比較更精確,因為它考慮了每個字符的二進制表示。
總結起來,BINARY關鍵字在你的SQL查詢中的作用是使字符串比較區(qū)分大小寫并使用二進制格式進行比較。
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
MySQL 百萬級分頁優(yōu)化(Mysql千萬級快速分頁)
MySql 性能到底能有多高?用了php半年多,真正如此深入的去思考這個問題還是從前天開始。有過痛苦有過絕望,到現(xiàn)在充滿信心2012-11-11
MySQL的雙寫緩沖區(qū)Doublewrite Buffer詳解
這篇文章主要介紹了MySQL的雙寫緩沖區(qū)Doublewrite Buffer詳解,InnoDB是MySQL中一種常用的事務性存儲引擎,它具有很多優(yōu)秀的特性,其中,Doublewrite Buffer是InnoDB的一個重要特性之一,本文將介紹Doublewrite Buffer的原理和應用,需要的朋友可以參考下2023-07-07
MySQL使用全庫備份數(shù)據(jù)恢復單表數(shù)據(jù)的方法
這篇文章主要給大家介紹了關于MySQL使用全庫備份數(shù)據(jù)恢復單表數(shù)據(jù)的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用mysql具有一定的參考學習價值,需要的朋友們下面來一起看看吧2018-12-12
MySQL中LIKE?BINARY和LIKE模糊查詢實例代碼
通常在實際應用中,會涉及到模糊查詢的需求,下面這篇文章主要給大家介紹了關于MySQL中LIKE?BINARY和LIKE模糊查詢的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-11-11

