select id=getTime resultMap=ShopkeeperchangeMap SELECT ssid staffstaffname b1branchname d1deptname r1rolename b2branchname as newbranchname d2deptname as newdeptname r2rolename
要模糊查找某个时间段的数据,可以使用MySQL的LIKE运算符和通配符%来实现。以下是修改后的SQL语句:
<select id="getTime" resultMap="ShopkeeperchangeMap">
SELECT s.sid,
staff.staffname,
b1.branchname,
d1.deptname,
r1.rolename,
b2.branchname as newbranchname,
d2.deptname as newdeptname,
r2.rolename as newrolename,
s.transfertime,
s3.staffname as st
FROM shopkeeperchange s
left JOIN staff ON staff.staffid = s.staffid
left JOIN staff s3 ON s3.staffid = s.transferper
LEFT JOIN branch b1 ON b1.branchid = s.branchid
LEFT JOIN department d1 ON d1.deptid = s.deptid
LEFT JOIN role r1 ON r1.roleid = s.roleid
LEFT JOIN branch b2 ON b2.branchid = s.newbranchid
LEFT JOIN department d2 ON d2.deptid = s.newdeptid
LEFT JOIN role r2 ON r2.roleid = s.newroleid
LEFT JOIN stafftransfer st ON s.staffid = st.staffid
<where>
<if test="transfertime != null">
s.transfertime LIKE CONCAT('%', #{transfertime}, '%')
</if>
st.state = 2 AND b1.branchname != '' AND b2.branchname != ''
</where>
</select>
请注意,上述代码中使用了MySQL的CONCAT函数来连接通配符和变量,以实现模糊匹配。
原文地址: https://www.cveoy.top/t/topic/jd4P 著作权归作者所有。请勿转载和采集!