1. 程式人生 > >Mysql條件查詢2(根據手機尾號的後四位查詢)

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的手機號