使用find_in_set()函数实现批量删除

导读:本篇文章讲解 使用find_in_set()函数实现批量删除,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

今天在实现客户删除的时候,碰到了无法批量删除的原因,然后百度了一下

用find_in_set函数()解决了,记录一下

 

find_in_set是精确匹配,字段值以英文”,”分隔,

语法为:

FIND_IN_SET(str,strlist)
 
//str 要查询的字符串

//strlist 字段名 参数以”,”分隔 如 (1,2,6,8)

//查询字段(strlist)中包含(str)的结果,返回结果为null或记录

下面举一个简单例子:

假设通过request.getParameterValues()获取jsp页面的复选框,复选框传值为id,返回值为string数组

但FIND_IN_SET(str,strlist)的strlist格式为”value1,value2,…”格式,所以我们进行字符串处理

			String[] order_ids = request.getParameterValues("orderId");
			//对传值进行字符串处理,如:"100007,100008"
			StringBuffer order_idss = new StringBuffer();
			for(int i = 0; i < order_ids.length; i++)
			{ 
				order_idss. append(order_ids[i]);
				if(i != order_ids.length - 1) {
					order_idss. append(",");
				}
			}
			String order_id = order_idss.toString();

处理之后传给dao层

通过\”转义字符实现拼接,假设传值为”1000067,100008″

那么如下sql语句就为delete from `order` where find_in_set(order_id,”1000067,100008″)”;

	/**
	 * 删除
	 */
	@Override
	public void deleteOrder(String order_id) {
		String sql = "delete from `order` where find_in_set(order_id,\"" + order_id + "\")";
		Object[] objs = {};
		executeUpdate(sql, objs);
	}

这样就能实现批量删除了

 

实现批量查询也是一样

sql语句为:select * from `table表名` where find_in_set(匹配的列名,”对应的条件1,对应的条件2″);

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/15236.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!