1. 程式人生 > >MySql查詢不區分大小寫解決方案(兩種)

MySql查詢不區分大小寫解決方案(兩種)

當我們輸入不管大小寫都能查詢到資料,例如:輸入 aaa 或者aaA ,AAA都能查詢同樣的結果,說明查詢條件對大小寫不敏感。

解決方案一:

於是懷疑Mysql的問題。做個實驗:直接使用客戶端用sql查詢資料庫。 發現的確是大小不敏感 。

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

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

解決方法。

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

select * from TableA where binary columnA ='aaa';

2. 可以修改該欄位的collation 為 binary

比如:

ALTER TABLE TABLENAME MODIFY COLUMN COLUMNNAME VARCHAR(50) BINARY CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL;

解決方案二:

mysql查詢預設是不區分大小寫的 如:

select * from some_table where str=‘abc'; select * from some_table where str='ABC';

得到的結果是一樣的,如果我們需要進行區分的話可以按照如下方法來做: 

第一種方法:
要讓mysql查詢區分大小寫,可以:

select * from some_table where binary str='abc' select * from some_table where binary str='ABC'

第二方法:

在建表時時候加以標識

create table some_table( str char(20) binary )

原理:

對於CHAR、VARCHAR和TEXT型別,BINARY屬性可以為列分配該列字符集的 校對規則。BINARY屬性是指定列字符集的二元 校對規則的簡寫。排序和比較基於數值字元值。因此也就自然區分了大小寫。

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

相關推薦

MySql查詢區分大小寫解決方案

當我們輸入不管大小寫都能查詢到資料,例如:輸入 aaa 或者aaA ,AAA都能查詢同樣的結果,說明查詢條件對大小寫不敏感。 解決方案一: 於是懷疑Mysql的問題。做個實驗:直接使用客戶端用sql查詢資料庫。 發現的確是大小不敏感 。 通過查詢資料發現需要設定collate(校對) 。 collate規則

解決MySQl查詢區分大小寫

問題 最近,在用SSH框架完成一個實踐專案時,碰到了一個莫名其妙的Bug困擾了我好久,最後終於解決,記錄如下。 問題:同學在測試系統的時候突然發現,資料庫儲存的賬戶本來應該是admin,結果該同學用Admin賬戶居然登入成功了…… ……EXM???

mysql查詢區分大小寫

摘自:http://www.jb51.net/article/70884.htm 當我們輸入不管大小寫都能查詢到資料,例如:輸入 aaa 或者aaA ,AAA都能查詢同樣的結果,說明查詢條件對大小寫不敏感。 解決方案一: 於是懷疑Mysql的問題。做個實驗:直接使用客戶端用sql查詢

mysql存表情出錯的解決方案類似xF0x9Fx98x86xF0x9F

cau use 結果 column 之前 involve 成功 tail _proto_ 之前以為mysql設置utf-8以及昵稱decode後就萬事大吉了,結果最近才發現對於4字節的表情會報錯。 報錯信息如下: data: nullmessage: " ### Err

手機能連上Wifi,而Win10筆記本卻連上,解決方案有圖

出差在外,手機能夠連上Wifi,膝上型電腦連線時,Wifi圖示左下角卻出現橘黃色問號,顯示網路訪問不成功。 解決方法如下: 1. 點選工作列上的Wifi圖示,點選“網路和Internet設定” 2. 在開啟的設定面板中,選擇“更改介面卡選項” 3. 雙擊需要連線

***在Linux環境下mysql的root密碼忘記解決方法-推薦第三

href containe 完全 mys init.d 操作 root ubunt upd MySQL密碼的恢復方法之一 1.首先確認服務器出於安全的狀態,也就是沒有人能夠任意地連接MySQL數據庫。 因為在重新設置MySQL的root密碼的期間,MySQL數據庫完全出於沒

MySQL】如何解決MySQL查詢區分大小寫的問題

bsp title 標識 article ble 問題 col bold table mysql查詢默認是不區分大小寫的 如: select * from some_table where str=‘abc‘; select * from some_ta

關於mysql中sql語句查詢區分大小寫解決辦法

MySQL在Linux下資料庫名、表名、列名、別名大小寫規則是這樣的: 1、資料庫名與表名是嚴格區分大小寫的; 2、表的別名是嚴格區分大小寫的; 3、列名與列的別名在所有的情況下均是忽略大小寫的; 4、變數名也是嚴格區分大小寫的; MySQL在Windows下都不區分大

Oracle 查詢區分大小寫 正則函式

//不區分大小寫查詢  REGEXP_LIKE(欄位名, '(" + keyword+ ")', 'i') " ); Oracle中的Like操作符使用'_'和'%'作為萬用字元,使用就像這樣: SELECT name FROM test_like WHERE nam

MYSQL查詢區分大小寫

MYSQL在預設的情況下查詢是不區分大小寫的,例如:mysql> create table t1(    -> name varchar(10)); Query OK, 0 rows affected (0.09 sec)mysql> insert into

Visual GC提示"受此JVM支持“解決方案配置jstatd

添加節點 註意 安全策略 插件 nbsp accep 還需 policy jstatd Visual GC提示"不受此JVM支持“,如果想使用這個插件,就需要配置jstatd連接方式,下面來看jstatd的配置; 1.配置安全策略文件路徑$JAVA_HOME/

激活miniconda2環境,出現activate命令存在的解決方案activate: No such file or directory

director bsp ini nbsp update date pat -i min miniconda2版本比較低時會出現這種報錯,通過更新miniconda2就可以解決這個問題,用到的命令行: /path/to/miniconda2/conda update

SSH連接linux時,長時間操作就斷開的解決方案增強版

正常 每分鐘 指定 防止 variable 當前 實現 客戶 不發送 1、第一次嘗試失敗 修改/etc/ssh/sshd_config文件, 找到 ClientAliveInterval 0 ClientAliveCountMax 3 並將註釋符號("#")去掉, 將Cli

Navicat 連線Mysql 8.0以上版本報錯1251的詳細解決方案配效果圖

從MySql5.7版本跳到了Mysql 8.0的版本,安裝的時候提示連結加密方式已經改變,是選擇5.?時代的方式還是新的方式,當時 全部選擇預設,所以選擇的新的 加密方式,然後 裝好之後Navicat遠端連線就一直報錯1251 如圖所示:1251-Client does n

word中MathPage.wll或MathType.dll檔案找到的解決方案親測有效!

在安裝了正版的mathtype 6.9b之後開啟word,竟然報了個mathpage.wll找不到的錯,於是乎逛了各大網站、部落格,一遍遍的試,不知道諸位是不是也和我一樣,屢次操作均是失敗。 但我的一次自行嘗試竟然解決了這個問題,其實解決的方法很簡單。因為由於版本的原因,網

國產手機支援google play Service 的解決方案小米2

宣告:此方法在最新米2 V5 系統裡測試成功 最近專案準備用google map做開發,但是當我一切準備工作就緒後,app-key申請完了,程式碼也加到工程裡後,一執行發現無法獲得google play Service,所以也就無法顯示google map。後來想想問題是用

SVN資料夾圖示正常顯示解決方案win10android studio

在使用Android Studio提交程式碼時發現svn圖示莫名其妙的不顯示,其他操作都正常。在網上搜了一堆資料都有各種說法,結合了操作,一步步來試終於給我找到了,在這我自己總結一下,一部分也是拷貝別的圖片,寫一篇清楚文章好希望能幫助和我遇到這種問題的人。以下步驟:解決方法一(失敗):1.升級最新版本,我的本

sqlite 模糊查詢區分大小寫,以及區分大小寫語句

https://www.jianshu.com/p/ce3786435c46 SELECT * FROM %@ where sessionId = '%@' and servState!=2 and content like '%%%@%%' COLLATE NOCAS

mysql設定區分大小寫

今天調一個程式,在windows下沒問題,但是在linux下一直提示找不到表,但資料庫是存在的。 感覺挺奇怪的,找了找原因,原來是mysql在linux下是預設區分表名大小寫的,在windows下預設不區分。 找到原因就好解決了: 用root賬號登入linux系統,修改/e

svn圖示顯示的解決方案第四個好辦法

最近發現svn圖示莫名其妙的不顯示,其他操作都正常。在網上搜了一些方法。 解決方法一(失敗): 升級最新版本,我的本來就是最新版本 解決方法二(失敗): 右鍵->TortoiseSVN->setting->Icon Overlays->Status cache->default