查询或者关系的两个条件用一个参数接受,且不区分大小写查询。mybatis中SQL语句的处理方式

动态SQL查询设备列表
 <select id="selectYgList" resultType="com.hot.analysis.bean.common.TDeviceYg">
		SELECT y.* 
		FROM 
    <!-- 公用模块:根据前端传入的moduleid查询不同的表-->
		<if test="moduleid == 1">t_device_dc</if>
		<if test="moduleid == 2">t_device_yg</if>
		<if test="moduleid == 3">t_device_jg</if>
		<if test="moduleid == 8">t_device_hw</if>
		<if test="moduleid == 9">t_device_ljt</if>
		<if test="moduleid == 10">t_device_sj</if>
		<if test="moduleid == 11">t_device_mc</if>
		<if test="moduleid == 12">t_device_krq</if>
		<if test="moduleid == 13">t_device_ywj</if>
		 y
		LEFT JOIN t_device_group_relation r ON y.id=r.deviceid
		RIGHT JOIN t_user_dgroup_relation u ON r.groupid=u.devicegroupid
		WHERE u.userid=#{userid}
		AND u.isdelete=0 
		AND r.isdelete=0 
		AND r.moduleid=#{moduleid}
        <!--         处理方式 -->
                 <if test="code != null and code != ''">
		AND (y.code	LIKE CONCAT('%', #{code}, '%')
		or
		y.devnum LIKE CONCAT('%', #{code}, '%'))</if>
	</select>

页面:

两个字段都要是一种数据类型才行

controller层:将数据都装在code

// 地图标注所有的设备
	@PostMapping("/somke/selectYgList")
	public List<TDeviceYg> selectYgList(@RequestParam("userid") Integer userid, @RequestParam("moduleid") Integer moduleid,  @RequestParam("code") String code) {
		return somkeDataAnalysisService.selectYgList(userid,moduleid,code);
	}

改进:不区分大小写查询

<if test="code != null and code != ''">
			AND ( dev.`code`    LIKE UPPER(CONCAT('%',#{code},'%')) OR  dev.`code` LIKE LOWER(CONCAT('%',#{code},'%')) 
			OR
			dev.devnum   LIKE UPPER(CONCAT('%',#{code},'%')) OR  dev.devnum  LIKE LOWER(CONCAT('%',#{code},'%'))  )
		</if>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值