关于sql的模糊查询的问题
2017-08-03 19:35
866 查看
问题描述:在mybatis中的xml文件中,使用sql语句完成在两个关键字的模糊查询,但是在查询的时候,查询的结果不全,因为有些数据中的关键字是空的,这种信息就搜不到,其他的都可以显示。
原始代码:
由于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 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模糊查询的下划线问题
- 关于C#SqlParameter传参进行模糊查询遇到的问题!
- Oracle、Mysql、MS sql中关于模糊查询问题
- 关于Hibernate的sql查询返回值的问题
- 关于SQL查询的字符串类型字段的排序问题
- oracle关于模糊查询的问题
- 关于sql 语句 查询结果的替换问题
- 关于sql查询语句 的一个问题
- Hibernate中关于多表连接查询hql 和 sql 返回值集合中对象问题
- 关于hibernate纯sql查询返回结果集的问题(hbm.xml中不写多表关联)
- 关于Hibernate在使用原生SQL语句多表查询所遇到的问题
- 关于oracle sql语句查询时表名和字段名要加双引号的问题详解
- 关于判断sql查询记录集为空的问题
- 关于sql的查询问题
- sql语句参数化模糊查询的问题
- 关于oracle sql语句查询时 表名和字段名要加双引号的问题详解
- Hibernate中关于多表连接查询hql 和 sql 返回值集合中对象问题
- 关于sql连接查询问题
- [转]关于SQL中Between语句查询日期的问题
- 关于SQL时间类型的模糊查询 .