Mysql條件查詢2(根據手機尾號的後四位查詢)
直接上sql語句的寫法:
sql語句的寫法:
<select id = "XXX(方法名)" parameterType = "hashmap" resultMap = "BaseResultMap">
select * from table(table寫自己的表名稱)
where 1 = 1
<if test="state != null and state != ' ' ">
and state = #{state,jdbcType = INTEGER}
</if>
<if test="number != null and number !=' ' ">
and phone like concat ('%',#{number,jdbcType=VARCHAR})
</if>
order by XX(根據某個欄位排序) desc
<if test ="beginIndex != null and beginIndex != -1 ">
limit #{beginIndex,jdbcType=INTEGER},#{pageSize,jdbcType=INTEGER}
</if>
</select>其中parameterType = "hashmap" 表示通過map集合來傳遞引數,resultMap = "BaseResultMap"表示返回map形式的資料,如果不知道怎麼通過map封裝,可以參考我前兩篇文章。
if 裡面的state和number欄位是封裝到map集合中的key值,and 後面的state和phone是資料庫的欄位,phone表示電話號碼
phone like concat ('%',#{number,jdbcType=VARCHAR}) 表示查詢後四位和number相等的手機號,
而後面再加一個‘%’,phone like concat ('%',#{number,jdbcType=VARCHAR},'%')表示查詢包含number的手機號