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

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多線程中的wait/notify通信模式實(shí)例詳解

    Java多線程中的wait/notify通信模式實(shí)例詳解

    這篇文章主要給大家介紹了關(guān)于Java多線程中wait/notify通信模式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • activemq整合springboot使用方法(個(gè)人微信小程序用)

    activemq整合springboot使用方法(個(gè)人微信小程序用)

    這篇文章主要介紹了activemq整合springboot使用(個(gè)人微信小程序用),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • java實(shí)體類轉(zhuǎn)json時(shí)null值不要轉(zhuǎn)為"null"問題

    java實(shí)體類轉(zhuǎn)json時(shí)null值不要轉(zhuǎn)為"null"問題

    這篇文章主要介紹了java實(shí)體類轉(zhuǎn)json時(shí)null值不要轉(zhuǎn)為“null”問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Springboot使用put、delete請(qǐng)求報(bào)錯(cuò)405的處理

    Springboot使用put、delete請(qǐng)求報(bào)錯(cuò)405的處理

    這篇文章主要介紹了Springboot使用put、delete請(qǐng)求報(bào)錯(cuò)405的處理方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 打開.properties中文顯示unicode編碼問題以及解決

    打開.properties中文顯示unicode編碼問題以及解決

    這篇文章主要介紹了打開.properties中文顯示unicode編碼問題以及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Java視頻格式轉(zhuǎn)化的實(shí)現(xiàn)方法

    Java視頻格式轉(zhuǎn)化的實(shí)現(xiàn)方法

    這篇文章主要為大家詳細(xì)介紹了Java視頻格式轉(zhuǎn)化的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • JavaWeb簡(jiǎn)單用戶登錄注冊(cè)實(shí)例代碼(有驗(yàn)證碼)

    JavaWeb簡(jiǎn)單用戶登錄注冊(cè)實(shí)例代碼(有驗(yàn)證碼)

    這篇文章主要介紹了JavaWeb簡(jiǎn)單用戶登錄注冊(cè)實(shí)例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Java Lambda 表達(dá)式詳解及示例代碼

    Java Lambda 表達(dá)式詳解及示例代碼

    本文主要介紹Java Lambda 表達(dá)式的知識(shí),這里整理了相關(guān)資料,JavaLambda 是Java8 引入的新功能,有興趣的小伙伴可以參考下
    2016-09-09
  • SpringMVC自定義類型轉(zhuǎn)換器實(shí)現(xiàn)解析

    SpringMVC自定義類型轉(zhuǎn)換器實(shí)現(xiàn)解析

    這篇文章主要介紹了SpringMVC自定義類型轉(zhuǎn)換器實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • SpringBoot微服務(wù)注冊(cè)分布式Consul的詳細(xì)過程

    SpringBoot微服務(wù)注冊(cè)分布式Consul的詳細(xì)過程

    這篇文章主要介紹了SpringBoot(微服務(wù))注冊(cè)分布式Consul,Spring Boot應(yīng)用可以通過向Consul注冊(cè)自身來實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)和治理,使得其他服務(wù)可以在Consul中發(fā)現(xiàn)并調(diào)用它,需要的朋友可以參考下
    2023-04-04

最新評(píng)論