<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.shdl.hterp.business.company.CompanyProductDao"> <select id="getList" resultType="companyProductBean" parameterType="companyProductBean"> select * from ( select M.*,ROWNUM RN from ( select c.* from product c where deletetime is null <if test="qm != null and qm != ''"> <!-- mybatis的模糊查询:oracle --> <if test="qm.companyname != null and qm.companyname != ''"> AND companyname||pname like '%${qm.companyname}%' </if> </if> order by companyname )M )N where N.RN > #{start} and N.RN <= #{end} </select> <!-- 更改sql:目前会导致查询条件下出现分页不对的现象 --> <select id="getListCount" parameterType="companyProductBean" resultType="int"> SELECT count(*) FROM product where deletetime is null <if test="qm != null and qm != ''"> <if test="qm.companyname != null and qm.companyname != ''"> AND companyname||pname like '%${qm.companyname}%' </if> </if> </select> </mapper>
模糊查询的2中写法:
1. select * from t_table where 条件 and (companyname like '%前台传的value%' or type like '%前台传的value%')
2. 使用连接符进行字段拼接:oracle使用的是||
select * from t_table where 条件 and companyname || type like '%前台传的value%'