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

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

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

場景

場景如下,一個簡單的查詢語句;

(mapper方法)

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

(單元測試)

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

數據庫數據,如下:

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

解決

解決方式有兩種,如下:

方法一:更換數據庫字符集

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

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

方法二:修改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);
    }

查詢結果:

總結

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

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

相關文章

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

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

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

    win2008下mysql8.0.11升級mysql8.0.17版本詳細步驟

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

    MySQL詳解進行JDBC編程與增刪改查方法

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

    SQL如何獲取目標時間點或日期的方法實例

    日期獲取在我們日常開發(fā)中經常會遇到,這篇文章主要給大家介紹了關于SQL如何獲取目標時間點或日期的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-10-10
  • mysql中如何按分組添加序號

    mysql中如何按分組添加序號

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

    驗證mysql是否安裝成功的方法

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

    win10下安裝mysql8.0.23 及 “服務沒有響應控制功能”問題解決辦法

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

    手把手教你Navicat如何導出Excel格式的表結構

    我們在開發(fā)中使用數據庫時往往需要做一些備份之類的,或者需要導出下表結構導入到其他數據庫等,下面這篇文章主要給大家介紹了關于Navicat如何導出Excel格式的表結構的相關資料,需要的朋友可以參考下
    2023-04-04
  • 解壓版MYSQL安裝及遇到的錯誤及解決方法

    解壓版MYSQL安裝及遇到的錯誤及解決方法

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

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

    在mysql中對編輯的數據進行類型的限制,不滿足約束條件的報錯,本文給大家分享mysql中的各種約束條件,結合實例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2024-05-05

最新評論