MySQL模糊查詢 like 時區分大小寫

2021-09-07 12:50:50 字數 1945 閱讀 2000

問題說明:通過上面的語句,你會發現mysql的like查詢是不區分大小寫的,因為我的失誤,把joe寫成了joe才發現了這個東東吧。但是,有時候,我們需要區分大小寫的是,該怎麼辦呢?解決方法如下:

方法一(查詢時,指定區分大小寫)

很簡單,在like的後面加個binary就可以了,適用於表的結構不易改變的情況下。大多數人發現這個問題的時候,往往表的結構是不能改變的,所以,這種方法還是很好的。

接下來還有其他的方法,是在建表的時候,設定好區分大小的。

也可以在建表時,加以標識 

create

table

table_name(

a varchar (20) binary

)

深入了解:

首先,你要了解的是:在mysql中,對於column collate其約定的命名方法如下:

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

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

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

建表的過程中設定字元區分大小寫,然後插入3條記錄測試。

很多時候,我們的首次建表都是不全面的,我在想,能不能以後新增,修改表的特徵,這個是可以的。

就剛才那個student_web表吧。

但是,失敗了。我不知道為什麼,希望您可以給我幫助。

上面使用_bin來區分大小寫的,還可以使用

create table table_name (word varchar(10)) character set latin1 collate latin1_general_cs;

或者,在查詢時指定collation

建表時:mysql> create table table_name (word varchar(10)) character set latin1; 

查詢時:mysql> select * from table_name where word collate latin1_bin like 'f%';  放在like前面

或:mysql> select * from table_name where word like 'f%' collate latin1_bin; 放在最後

或:mysql> select * from case_test where word like 'f%' collate latin1_general_cs; 

參考文獻:

參考:

MySQL模糊查詢(like)時區分大小寫

1 一種方法是可以設定表或行的collation,使其為binary或case sensitive。在mysql中,對於column collate其約定的命名方法如下 bin 表示的是binary case sensitive collation,也就是說是區分大小寫的 cs case sensi...

MySQL模糊查詢(like)時區分大小寫

問題說明 通過上面的語句,你會發現mysql的like查詢是不區分大小寫的,因為我的失誤,把joe寫成了joe才發現了這個東東吧。但是,有時候,我們需要區分大小寫的是,該怎麼辦呢?解決方法如下 方法一 查詢時,指定區分大小寫 很簡單,在like的後面加個binary就可以了,適用於表的結構不易改變的...

mysql模糊查詢like優化

使用 like value 不走索引 select column from table where field like keyword 1.可使用 like value 前值匹配,可走索引 select column from table where field like keyword 2.使用...