sql语句,以id为例子,根据 id集合查询对应的数据,动态根据开始时间和结束时间查询
xml映射文件:<select id="selectImages" resultType="org.jeecg.modules.supervise.device.entity.DataCollector">SELECTt1.*FROMdata_collector t1WHEREt1.collector_id in<foreach item="id" coll
·
xml映射文件:
<select id="selectImages" resultType="org.jeecg.modules.supervise.device.entity.DataCollector">
SELECT
t1.*
FROM
data_collector t1
WHERE
t1.collector_id in
<foreach item="id" collection="deviceCollectorIds" index="index" open="(" separator=","
close=")">
#{id}
</foreach>
<if test="startTime != null and startTime != ''">
AND t1.collector_time between #{startTime} and #{endTime}
</if>
order by t1.collector_time desc
</select>
mapper文件:
List<DataCollector> selectImages(List<String> deviceCollectorIds,
String startTime,
String endTime);
测试:
SELECT
t1.*
FROM
data_collector t1
WHERE
t1.collector_id IN (
'100001172',
'100001023',
'100000711')
使用navicat 能够顺利查出数据:
还有一种情况就是,传过来的id 集合有可能为空集,这时候可以结合动态sql:
<select id="selectImages" resultType="org.jeecg.modules.supervise.device.entity.DataCollector">
SELECT
t1.*
FROM
data_collector t1
<if test="deviceCollectorIds !=null">
WHERE
t1.collector_id in
<foreach item="id" collection="deviceCollectorIds" index="index" open="(" separator=","
close=")">
#{id}
</foreach>
</if>
<if test="startTime != null and startTime != ''">
AND t1.collector_time between #{startTime} and #{endTime}
</if>
order by t1.collector_time desc
</select>

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)