mysql 如何解決欄位不區分大小寫的問題

2021-09-18 06:38:56 字數 1677 閱讀 3540

1、mysql預設情況下是否區分大小寫,使用show variables like '%table_names』檢視lower_case_table_names的值;

show variables like 『%lower_case_table_names』

0代表區分,1代表不區分。

2,linux下的mysql預設是要區分表名大小寫的 ,而在windows下表名不區分大小寫

(1). 用root登入,修改/etc/my.cnf

(2) 在[mysqld]下加入一行:lower_case_table_names=1

3.通過查詢資料發現需要設定collate(校對) 。

collate規則:

*_bin: 表示的是binary case sensitive collation,也就是說是區分大小寫的

*_cs: case sensitive collation,區分大小寫

*_ci: case insensitive collation,不區分大小寫

設定字符集:

utf8_general_ci --不區分大小寫

utf8_bin–區分大小寫

6,可以通過binary關鍵字,方法有兩種:

可以將查詢條件用binary()括起來。 比如:

select * from table where binary column =『aaa』;

可以修改該字段的collation 為 binary

比如:

alter

table

tablename

modify

column

columnname

varchar

(100

)binary

character

set utf8 collate utf8_bin default

null

;

3,在建表時加以標識:

create table `usertable`( 

`id` varchar(32

) binary,

primary

key(`id`)

)engine

=innodb default

charset

=utf8;

create

table `usertable` (

`id` varchar(32

)character

set utf8 collate utf8_bin not

null

default'',

primary

key(`id`)

)engine

=innodb default

charset

=utf8;

原理:

對於char、varchar和text型別,binary屬性可以為列分配該列字符集的 校對規則。

binary屬性是指定列字符集的二元 校對規則的簡寫。

排序和比較基於數值字元值。因此也就自然區分了大小寫。

以上通過兩種方案解決了mysql查詢不區分大小寫的問題,希望對大家有所幫助,更多有mysql資料查詢問題,請登入本站學習。

如何解決php domdocument找不到的問題

具體問題 我在magento應用程式的頁面上發現錯誤 當我訪問它時,它總是顯示此訊息錯誤 fatal error c程式設計客棧lass domdocumwww.cppcns.coment not found in home lib zend feed abstract.php on line 95...

如何解決mysql死鎖

見官方文件 可直接在mysql命令列執行 show engine innodb status g 檢視造成死鎖的sql語句,分析索引情況,然後優化sql 然後show processlist kill processid 另外可以開啟慢查詢日誌,linux下開啟需在my.cnf的 mysqld 裡面...

Spring Boot如何解決Mysql斷連問題

spring.datasource.url jdbc mysql localhost test spring.datasource.username dbuser spring.datasource.password dbpass spring.datasource.driver class nam...