mybatis 模糊查詢 like的三種方式

第一種mysql

public void selectBykeyWord(String keyword) {
  String id = "%" + keyword + "%";
  String roleType = "%" + keyword + "%";
  String roleName = "%" + keyword + "%";
  userDao.selectBykeyWord(id,roleName,roleType);
}
在Dao層指定各個參數的別名sql

List<RoleEntity> selectBykeyWord(@Param("id") String id,@Param("roleName") String roleName,@Param("roleType") String roleType);mybatis

mapper.xml中app

<select id="selectBykeyWord" parameterType="string" resultType="com.why.mybatis.entity.RoleEntity">
  SELECT
    *
  FROM
    t_role
  WHERE
    role_name LIKE #{roleName}
    OR id LIKE #{id}
    OR role_type LIKE #{roleType}
</select>函數


執行出來的SQL語句:spa

SELECT * FROM t_role WHERE role_name LIKE '%why%' OR id LIKE '%why%' OR role_type LIKE '%why%';xml

 

第二種字符串

CONCAT()函數string

MySQL的 CONCAT()函數用於將多個字符串鏈接成一個字符串,是最重要的mysql函數之一it

CONCAT(str1,str2,...)

List<RoleEntity> selectBykeyWord(@Param("keyword") String keyword);

<select id="selectBykeyWord" parameterType="string" resultType="com.why.mybatis.entity.RoleEntity">
  SELECT
    *
  FROM
    t_role
  WHERE
    role_name LIKE CONCAT('%',#{keyword},'%')
  OR
    id LIKE CONCAT('%',#{keyword},'%')
  OR
    role_type LIKE CONCAT('%',#{keyword},'%')
</select>

第三種

Mybatis的bind

<!-- 按條件查詢用戶 --> <select id="searchData" resultMap="BaseResultMap">   <bind name="pattern" value="searchData + '%'" />   select     <include refid="Base_Column_List" />   from user     where (name like #{pattern,jdbcType=VARCHAR} or login_name like #{pattern,jdbcType=VARCHAR}) and login_name != #{loginName,jdbcType=VARCHAR} </select>

相關文章
相關標籤/搜索