欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL查詢不區(qū)分大小寫的兩種解決方式

 更新時(shí)間:2025年01月24日 10:31:01   作者:何中應(yīng)  
偶然機(jī)會(huì),發(fā)現(xiàn)一次查詢匹配數(shù)據(jù)的時(shí)候沒有區(qū)分大小寫,如,username = ‘WangWu’,username = 'wangwu’的記錄也被查出來,本文介紹解決這種情況的兩種方式,并通過代碼講解的非常詳細(xì),需要的朋友可以參考下

場(chǎng)景

場(chǎng)景如下,一個(gè)簡(jiǎn)單的查詢語(yǔ)句;

(mapper方法)

    @Select("select * from tb_demo where username = #{username} ")
    DemoDTO selectByUsername(String username);

(單元測(cè)試)

    @Test
    public void testSelectByUsername() {
        String username = "WangWu";
        DemoDTO demoDTO = demoMapper.selectByUsername(username);
        System.out.println(demoDTO);
    }

數(shù)據(jù)庫(kù)數(shù)據(jù),如下:

查詢結(jié)果,沒有區(qū)分大小寫,wangwu的記錄被查出來了;

解決

解決方式有兩種,如下:

方法一:更換數(shù)據(jù)庫(kù)字符集

在前面的demo中,數(shù)據(jù)庫(kù)字符集是:utf8mb4_general_ci,表的字符集:utf8mb4_general_ci,ci,意思是case insensitive,大小寫不敏感,不區(qū)分大小寫。

可以考慮更改為 utf8mb4_bin,但是博主嘗試修改現(xiàn)有數(shù)據(jù)庫(kù)的字符集,還是不行,只有在創(chuàng)建表的時(shí)候就指定才行。故在以后創(chuàng)建數(shù)據(jù)庫(kù)選定字符集時(shí),需考慮業(yè)務(wù)是否有區(qū)分大小寫的場(chǎng)景。

方法二:修改SQL

可以在SQL中,指定字符集比較。像上面的SQL,修改如下:

    @Select("select * from tb_demo where username = #{username} COLLATE utf8mb4_bin")
    DemoDTO selectByUsername(String username);

指定用 utf8mb4_bin字符集比較,就能區(qū)分大小寫了,如下:

    @Test
    public void testSelectByUsername() {
        DemoDTO demoDTO1 = demoMapper.selectByUsername("WangWu");
        System.out.println("demoDTO1 = " + demoDTO1);

        DemoDTO demoDTO2 = demoMapper.selectByUsername("wangwu");
        System.out.println("demoDTO2 = " + demoDTO2);
    }

查詢結(jié)果:

總結(jié)

本文介紹了在MySQL中,解決查詢不區(qū)分大小寫的兩種方式

到此這篇關(guān)于MySQL查詢不區(qū)分大小寫的兩種解決方式的文章就介紹到這了,更多相關(guān)MySQL查詢不區(qū)分大小寫內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL中索引的創(chuàng)建及刪除方法

    MySQL中索引的創(chuàng)建及刪除方法

    MySQL中的索引是一種特殊的數(shù)據(jù)結(jié)構(gòu),它的主要目的是為了加快數(shù)據(jù)的檢索速度,下面這篇文章主要給大家介紹了關(guān)于MySQL中索引的創(chuàng)建及刪除的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • win2008下mysql8.0.11升級(jí)mysql8.0.17版本詳細(xì)步驟

    win2008下mysql8.0.11升級(jí)mysql8.0.17版本詳細(xì)步驟

    這篇文章主要為大家詳細(xì)介紹了win2008下mysql8.0.11升級(jí)mysql8.0.17版本詳細(xì)步驟,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • MySQL詳解進(jìn)行JDBC編程與增刪改查方法

    MySQL詳解進(jìn)行JDBC編程與增刪改查方法

    JDBC是指Java數(shù)據(jù)庫(kù)連接,是一種標(biāo)準(zhǔn)Java應(yīng)用編程接口( JAVA API),用來連接 Java 編程語(yǔ)言和廣泛的數(shù)據(jù)庫(kù)。從根本上來說,JDBC 是一種規(guī)范,它提供了一套完整的接口,允許便攜式訪問到底層數(shù)據(jù)庫(kù)
    2022-06-06
  • SQL如何獲取目標(biāo)時(shí)間點(diǎn)或日期的方法實(shí)例

    SQL如何獲取目標(biāo)時(shí)間點(diǎn)或日期的方法實(shí)例

    日期獲取在我們?nèi)粘i_發(fā)中經(jīng)常會(huì)遇到,這篇文章主要給大家介紹了關(guān)于SQL如何獲取目標(biāo)時(shí)間點(diǎn)或日期的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • mysql中如何按分組添加序號(hào)

    mysql中如何按分組添加序號(hào)

    這篇文章主要介紹了mysql中如何按分組添加序號(hào)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 驗(yàn)證mysql是否安裝成功的方法

    驗(yàn)證mysql是否安裝成功的方法

    在本篇文章里小編給大家分享的是關(guān)于驗(yàn)證mysql是否安裝成功的方法,需要的朋友們可以學(xué)習(xí)下。
    2020-06-06
  • win10下安裝mysql8.0.23 及 “服務(wù)沒有響應(yīng)控制功能”問題解決辦法

    win10下安裝mysql8.0.23 及 “服務(wù)沒有響應(yīng)控制功能”問題解決辦法

    這篇文章主要介紹了win10下安裝mysql8.0.23 及 “服務(wù)沒有響應(yīng)控制功能”問題解決辦法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • 手把手教你Navicat如何導(dǎo)出Excel格式的表結(jié)構(gòu)

    手把手教你Navicat如何導(dǎo)出Excel格式的表結(jié)構(gòu)

    我們?cè)陂_發(fā)中使用數(shù)據(jù)庫(kù)時(shí)往往需要做一些備份之類的,或者需要導(dǎo)出下表結(jié)構(gòu)導(dǎo)入到其他數(shù)據(jù)庫(kù)等,下面這篇文章主要給大家介紹了關(guān)于Navicat如何導(dǎo)出Excel格式的表結(jié)構(gòu)的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • 解壓版MYSQL安裝及遇到的錯(cuò)誤及解決方法

    解壓版MYSQL安裝及遇到的錯(cuò)誤及解決方法

    這篇文章主要介紹了解壓版MYSQL安裝及遇到的錯(cuò)誤及解決方法,需要的朋友可以參考下
    2018-11-11
  • mysql中的各種約束條件深入探討

    mysql中的各種約束條件深入探討

    在mysql中對(duì)編輯的數(shù)據(jù)進(jìn)行類型的限制,不滿足約束條件的報(bào)錯(cuò),本文給大家分享mysql中的各種約束條件,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2024-05-05

最新評(píng)論