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

Mybatis?mysql模糊查詢方式(CONCAT多個(gè)字段)及bug

 更新時(shí)間:2022年01月21日 09:40:32   作者:男人要霸氣  
這篇文章主要介紹了Mybatis?mysql模糊查詢方式(CONCAT多個(gè)字段)及bug,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Mybatis mysql模糊查詢及bug

先看下如下xml

 SELECT
    t.id,
    t.mobile,
    t.account_name
  FROM
    t_account t
    WHERE
  	 1=1
    <if test="keyWord !=null and keyWord !=''">
        and CONCAT(t.id,t.mobile,t.account_name) like CONCAT('%',#{keyWord},'%')
    </if>

正常來說這樣寫沒問題的,但是如果你CONCAT的字段中有一個(gè)字段為null時(shí),那這條數(shù)據(jù)將查詢不到,說白了,只要有一個(gè)字段為null,就查不到數(shù)據(jù)了。

先看下以下數(shù)據(jù)。 

在這里插入圖片描述

從上圖可以發(fā)現(xiàn),id為7的mobile為null的,接下來咱們測(cè)試下結(jié)果。

根據(jù)account_name模糊查詢:查詢柳巖是能查到數(shù)據(jù)的,如下圖

在這里插入圖片描述

查詢張三是查詢不到數(shù)據(jù)的,如下圖

在這里插入圖片描述

根據(jù)Id查id為7的也是查不到的,如下圖

在這里插入圖片描述

結(jié)論:CONCAT的字段中有任意一個(gè)字段為null時(shí),那這條數(shù)據(jù)將查詢不到

解決方案:一

改成用or連接

 SELECT
    t.id,
    t.mobile,
    t.account_name
  FROM
    t_account t
    WHERE
  	 1=1
    <if test="keyWord !=null and keyWord !=''">
        and CONCAT(t.id) like CONCAT('%',#{keyWord},'%')
        or CONCAT(t.mobile) like CONCAT('%',#{keyWord},'%')
        or CONCAT(t.account_name) like CONCAT('%',#{keyWord},'%')
    </if>

看下運(yùn)行結(jié)果:查到張三這條數(shù)據(jù)了

在這里插入圖片描述

解決方案:二

判null處理

 SELECT
    t.id,
    t.mobile,
    t.account_name
  FROM
    t_account t
    WHERE
  	 1=1
        and CONCAT( IFNULL(t.id,''),IFNULL(t.mobile,''),IFNULL(t.account_name,'') ) like CONCAT('%',#{keyWord},'%')

在這里插入圖片描述

mybatis多個(gè)字段如何模糊查詢一個(gè)值

使用oracle concat 函數(shù)拼接字符 再進(jìn)行l(wèi)ike 操作

<if test="searchContent!=null and searchContent!=''">
CONCAT(CONCAT(CONCAT(CONCAT(venderDesc,purcher),demandOrg),contactInfo),materialDesc) like#{searchContent}
</if>

mybatis 多個(gè)字段如何模糊查詢一個(gè)值

注:venderDesc,purcher,demandOrg,contactInfo,materialDesc為表的字段,想要拼接哪個(gè)字段就拼哪個(gè)字段

有些作者說 CONCAT(venderDesc,purcherdemandOrg,demandOrg,contactInfo,materialDesc) 這樣也能實(shí)現(xiàn),但本人經(jīng)測(cè)試這個(gè)是不行的,會(huì)報(bào)參數(shù)錯(cuò)誤,可能是跟數(shù)據(jù)庫的版本有關(guān)。

mybatis 多個(gè)字段如何模糊查詢一個(gè)值

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java 打印一字符串,并在main()方法內(nèi)調(diào)用它

    java 打印一字符串,并在main()方法內(nèi)調(diào)用它

    編寫一個(gè)方法(名字自定,但要符合Java編碼規(guī)范),方法內(nèi)打印一字符串,并在main()方法內(nèi)調(diào)用它。
    2017-02-02
  • Java設(shè)計(jì)模式之依賴倒轉(zhuǎn)原則精解

    Java設(shè)計(jì)模式之依賴倒轉(zhuǎn)原則精解

    設(shè)計(jì)模式(Design pattern)代表了最佳的實(shí)踐,通常被有經(jīng)驗(yàn)的面向?qū)ο蟮能浖_發(fā)人員所采用。設(shè)計(jì)模式是軟件開發(fā)人員在軟件開發(fā)過程中面臨的一般問題的解決方案。本篇介紹設(shè)計(jì)模式七大原則之一的依賴倒轉(zhuǎn)原則
    2022-02-02
  • Java中的轉(zhuǎn)換流、壓縮流、序列化流、打印流及應(yīng)用場(chǎng)景

    Java中的轉(zhuǎn)換流、壓縮流、序列化流、打印流及應(yīng)用場(chǎng)景

    這篇文章主要介紹了Java中的轉(zhuǎn)換流、壓縮流、序列化流、打印流及應(yīng)用場(chǎng)景,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • Java 實(shí)戰(zhàn)項(xiàng)目基于遺傳算法學(xué)校排課系統(tǒng)的實(shí)現(xiàn)流程

    Java 實(shí)戰(zhàn)項(xiàng)目基于遺傳算法學(xué)校排課系統(tǒng)的實(shí)現(xiàn)流程

    讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+Springboot+Maven+mybatis+Vue+Mysql實(shí)現(xiàn)一個(gè)基于遺傳算法的學(xué)校排課系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平
    2021-11-11
  • 使用mtrace追蹤JVM堆外內(nèi)存泄露的方法

    使用mtrace追蹤JVM堆外內(nèi)存泄露的方法

    這篇文章主要給大家介紹了如何使用mtrace追蹤JVM堆外內(nèi)存泄露,文章通過代碼示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-09-09
  • idea 安裝 Mybatis 開發(fā)幫助插件 MyBatisCodeHelper-Pro 插件破解版的方法

    idea 安裝 Mybatis 開發(fā)幫助插件 MyBatisCodeHelper-Pro 插件破解版的方法

    MyBatisCodeHelper-Pro 插件可以幫助我們快速的開發(fā) mybatis,這篇文章給大家介紹idea 安裝 Mybatis 開發(fā)幫助插件 MyBatisCodeHelper-Pro 插件破解版的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧
    2020-09-09
  • Java應(yīng)用CPU使用率過高排查方式

    Java應(yīng)用CPU使用率過高排查方式

    這篇文章主要介紹了Java應(yīng)用CPU使用率過高排查方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Maven中的dependencyManagement 實(shí)例詳解

    Maven中的dependencyManagement 實(shí)例詳解

    dependencyManagement的中文意思就是依賴關(guān)系管理,它就是為了能通更好統(tǒng)一管理項(xiàng)目的版本號(hào)和各種jar版本號(hào),可以更加方便升級(jí),解決包沖突問題,這篇文章主要介紹了Maven中的dependencyManagement 實(shí)例詳解,需要的朋友可以參考下
    2024-02-02
  • SpringBoot自定義啟動(dòng)器Starter流程詳解

    SpringBoot自定義啟動(dòng)器Starter流程詳解

    SpringBoot中的starter是一種非常重要的機(jī)制,能夠拋棄以前繁雜的配置,將其統(tǒng)一集成進(jìn)starter,應(yīng)用者只需要在maven中引入starter依賴,SpringBoot就能自動(dòng)掃描到要加載的信息并啟動(dòng)相應(yīng)的默認(rèn)配置。starter讓我們擺脫了各種依賴庫的處理,需要配置各種信息的困擾
    2022-11-11
  • Java靜態(tài)代理和動(dòng)態(tài)代理詳解

    Java靜態(tài)代理和動(dòng)態(tài)代理詳解

    這篇文章主要介紹了Java靜態(tài)代理和動(dòng)態(tài)代理,本文通過代碼示例給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-11-11

最新評(píng)論

鄯善县| 蕉岭县| 陇南市| 诸城市| 南充市| 新丰县| 新野县| 江陵县| 九台市| 阳城县| 大荔县| 临夏县| 聂荣县| 原阳县| 灌云县| 修水县| 调兵山市| 永安市| 日照市| 嘉义县| 柞水县| 沙坪坝区| 武穴市| 科技| 香格里拉县| 科尔| 镇赉县| 木兰县| 昭通市| 荥阳市| 中宁县| 山阴县| 七台河市| 沙坪坝区| 察雅县| 金昌市| 股票| 宁河县| 石城县| 陆川县| 赫章县|