1. 程式人生 > >關於sql的模糊查詢的問題

關於sql的模糊查詢的問題

問題描述:在mybatis中的xml檔案中,使用sql語句完成在兩個關鍵字的模糊查詢,但是在查詢的時候,查詢的結果不全,因為有些資料中的關鍵字是空的,這種資訊就搜不到,其他的都可以顯示。

原始程式碼:

select id="queryPassMember" parameterType="map" resultMap="BaseResultMap">
		select
		<include refid="Base_Column_List" />
		from shop_employee_relation
		<where>
			<if test="shopId != null">
				SHOP_ID= #{shopId}
				and delete_flag=1
			</if>
			<if test="mobile !=null ">
				AND shopkeeper_phone LIKE
				concat(concat('%',#{mobile}),'%')
			</if>
			<if test="memberName !=null ">
				AND member_name LIKE concat(concat('%',#{memberName}),'%')
			</if>
		</where>
		order by ROLE asc
</select>

 
  由於mybatis使用的不是很流暢,所以想了很久,查了不少的模糊查詢的語句,但是也沒有解決,最後找到了原因
<select id="queryPassMember" parameterType="map" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List" />
        from shop_employee_relation
        <where>
            <if test="shopId != null">
                SHOP_ID= #{shopId}
                and delete_flag=1
            </if>
            <if test="mobile !=null and mobile !=''">
                AND shopkeeper_phone LIKE
                concat(concat('%',#{mobile}),'%')
            </if>
            <if test="memberName !=null and memberName !=''">
                AND member_name LIKE concat(concat('%',#{memberName}),'%')
            </if>
        </where>
        order by ROLE asc
    </select>
這樣就實現了有關鍵字的時候按照關鍵字查詢,沒有關鍵字的時候就進行全部查詢,杜絕了當一條資料中沒有其關鍵字的時候漏查的現象。

               題外話:推薦一首歌:林宥嘉的《成全》,感覺還行,畫面感很強。

相關推薦

SQL 模糊查詢

配對 address string 引號 add table cell code 過程 SQL 模糊查詢 在進行數據庫查詢時,有完整查詢和模糊查詢之分。一般模糊查詢語句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 條件 其中關於

【轉】SQL模糊查詢

使用 模式 正則表達 bcd 一個 長度 排除 lsp [] 在進行數據庫查詢時,有完整查詢和模糊查詢之分。一般模糊查詢語句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 條件 其中關於條件,SQL提供了四種匹

sql 模糊查詢語句

用到sql模糊查詢時,發現之前資料庫課上學到的東西又還給老師了,就重溫一下。。。 先舉兩個例子,最後有like表示式的具體介紹: 1、查詢所有以“資料”開頭的課程名 select Cname from course where Cname like '資料%';

SQL---模糊查詢與正則表示式詳解和對比

1:模糊查詢 在進行資料庫查詢的時候,有完整查詢和模糊查詢之分; 完整查詢就是我們平時查詢的普通語句(對某個查詢條件確定的前提下),而模糊查詢就是常見的where 後面增加了 like 關鍵字。 一般模糊查詢語句如下: select 欄位 from 表 where 某欄位 l

SQL模糊查詢碰到空值怎麼辦?

作者:iamlaosong SQL查詢語句用%來做模糊查詢,程式中一般要求使用者輸入部分資訊,根據這個資訊進行模糊查詢。例如使用者輸入340104,下面這條語句就是查詢昨天客戶程式碼為340104開頭

【資料庫】SQL模糊查詢

SQL的模糊查詢是當不清楚資料庫中的具體關鍵詞時使用的一種查詢方式,最主要的關鍵詞時like,and與%。 like like用於在where子句中搜索列中的指定模式。 語法: SELE

關於SQL模糊查詢日期時間的方法

模糊查詢有以下三種方法: yourtime ~~~ 2017-06-30 1.Convert轉成String,在用Like查詢。 select * from table1   where conver

SQL——模糊查詢

前言     在這個大資料時代,我們都離不開對資料的增刪改查,增加、刪除、修改這些看似都是一步完成的事情,但是對於查詢來說,好的查詢SQL可以大大的減少系統記憶體執行時間,提高系統的反應速度。這裡簡單

oracle sql模糊查詢時允許查詢特殊字元

這個只是一個知識點作為記錄,如果存在轉義符就使用oracle的escape欄位,此欄位是用來定義轉義符的 例如:select * from tb_vlan tv where tv.name like '%3/%%' escape '/'這樣查詢出來的結果可以是13%2

SQL模糊查詢

其中關於條件,SQL提供了四種匹配模式:1,% :表示任意0個或多個字元。可匹配任意型別和長度的字元,有些情況下若是中文,請使用兩個百分號(%%)表示。 比如 SELECT * FROM [user] WHERE u_name LIKE '%三%' 將會把u_name為“張三”,“張貓三”、“三腳貓”,“唐三

SQL模糊查詢的引數化

用引數化SQL語句進行模糊查詢,一開始的使用方法不正確,摸索了好一會。 1、使用引數化SQL語句進行模糊查詢的正確方法:      //定義sql語句       string sql = "SELECT StudentID,StudentNO,StudentName FR

動態SQL中 實現條件參數 varchar類型的參數名稱 以及模糊查詢實現

pty set tab 條件 name 條件參數 arc str ble set @strSQL=‘select * from testtable AS P WHERE P.Type=‘+@PType+‘

sql server 分組查詢結合日期模糊查詢

.html 分組查詢 group lan 字符 max tar getdate ref 分組查詢: https://www.cnblogs.com/netserver/p/4518995.html 日期格式化格式: http://blog.csdn.net/qq_16769

sql 存儲過程帶有模糊查詢條件

art esc count work procedure etime 需要 create bsp 一個簡單的存儲過程: Create procedure [dbo].[Proc_SeachJob] (@startRecordIndex int, @endRecordIn

sql like模糊查詢的條件拼接

body con ted cond -c where sel apple b- 被坑了兩次,記錄加深記憶 oracle : select * from table_name where 1=1 <#if secondName?? &&

SSM-MyBatis-05:Mybatis中別名,sql片段和模糊查詢加getMapper

接口 過程 ase exce bat -c 多次 nts log ------------吾亦無他,唯手熟爾,謙卑若愚,好學若饑------------- 簡單概述一下本講 別名,sql片段簡單寫一下,模糊查詢多寫一點 一。別名    <typeAliases&

模糊查詢--視圖寫sql

其他 sql 中文名 ble domain case when val 搜索 cal 《1》cip_admin_domain(option字段A) ---> 裏面配置(option字段A)屬性,defalut_value設置初始值(如:創建新項目,其創建後的項目狀態

SQL模糊查詢的幾種方式

tween SQ 列名 HERE like BE between 指定 模糊查詢 1、使用’Like‘進行查詢 語法: where <列名> [NOT] Like <字符表達式> 2、使用’in‘在限定值內進行查詢 語法:wher

K3 WISE 開發插件《SQL語句WHERE查詢-範圍查詢/模糊查詢

toolbar IV 範圍查詢 CI clas span sql語句 FN 復制 0、存儲過程開頭變量定義 @FBeginDate varchar(10), --單據起始日期 @FEndDate varchar(10),

模糊查詢時用到prepareStatement在SQL語句裏的問號怎麽寫

stat alt 分享 裏的 image prepare ima sql語句 技術 模糊查詢時用到prepareStatement在SQL語句裏的問號怎麽寫