最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)單的查詢語句;

(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ù)庫數(shù)據(jù),如下:

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

解決

解決方式有兩種,如下:

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

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

可以考慮更改為 utf8mb4_bin,但是博主嘗試修改現(xiàn)有數(shù)據(jù)庫的字符集,還是不行,只有在創(chuàng)建表的時(shí)候就指定才行。故在以后創(chuàng)建數(shù)據(jù)庫選定字符集時(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)文章

最新評(píng)論

泸水县| 南部县| 瑞安市| 大庆市| 新兴县| 图片| 遂川县| 西丰县| 安阳县| 九龙县| 会理县| 楚雄市| 阿拉尔市| 张家港市| 丽水市| 凌源市| 静海县| 满城县| 甘南县| 定陶县| 庐江县| 东辽县| 南皮县| 德格县| 元氏县| 沂源县| 顺义区| 湟源县| 卢氏县| 大埔区| 孟州市| 澳门| 财经| 涞源县| 蓬莱市| 波密县| 莒南县| 玛曲县| 汉沽区| 逊克县| 宝坻区|