数据库QBS.QBS_DEP_ROLE如下,
引用的workid所在表QBS.QBS_WORK
现在想更新QBS_DEP_ROLE表下所有worklist中含有workid2和4列(对应业务意义为无这两个工作区访问权限)
ibatis处理如下:
<update id="updateDepRoles" parameterType="list">
update QBS.QBS_DEP_ROLE as r ,(select e.workList,e.depRoleId ,k.workId from QBS.QBS_DEP_ROLE as e, QBS.QBS_WORK k where workList like CONCAT('%',k.workId,',%') and k.workId in
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item}
</foreach>
) as w
SET r.WORKLIST = (select INSERT(w.WORKLIST, LOCATE(w.workId ,w.WORKLIST), LENGTH(w.workId)+1, ''))
WHERE r.depRoleId = w.depRoleId
</update>
解释:
(select e.workList,e.depRoleId ,k.workId
from QBS.QBS_DEP_ROLE as e, QBS.QBS_WORK k where workList like
CONCAT('%',k.workId,',%') ------ 临时表中worklist中有workid(因为要删除的工作区可能是多个,比如2和4,有的worklist中可能只有2,但冗余会有workid 4)
and k.workId in -------workid是要删除的
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item}
</foreach>
) as w
SET r.WORKLIST = (select INSERT(w.WORKLIST, LOCATE(w.workId ,w.WORKLIST), LENGTH(w.workId)+1, '')) 将原WORKLIST替换为去掉workid的WORKLIST
WHERE r.depRoleId = w.depRoleId ----哪个部门的角色下的
分享到:
相关推荐
字符串查找替换
Sqlservler 数据库 字符串 批量替换工具 可以批量替换数据库中所有表中所有字段中的指定字符
oracle 用SQL通过使用游标实现批量更新表中某个字段的值表名和字段名需要修改,字符串的截取的方法需要根据实际情况修改
asp批量替换access数据库中指定字段内指定字符串方法
1.使用replace替换字符串的某些内容,使用的是正则+ replace, 2. 前提是替换字符串里面的某些标签,也可以是多个标签,这个是在react里面的,自己可以参考然后可以动态替换成其他标签,例如li,ul都是可以的 3.字符...
批量替换 MySQL 指定字段中的字符串是数据库应用中很常见的需求,但是有很多初学者在遇到这种需求时,通常都是用脚本来实现;其实,MySQL 内置的有批量替换语法,效率也会高很多;想了解具体方法,继续阅读本文吧 :)
KETTLE实现循环批量更新表添加字段,将kettle资源库抽取到另一个数据库中并输出抽取表单,(本文用的是MySQL)
语法 REPLACE ( ‘string_expression1’ , ‘string_expression2’ , ‘string_expression3’ ) 参数说明 ‘string_expression1’ 待搜索的字符串表达式。string_expression1 可以是字符数据或二进制数据...
批量统计多字符串中[中英文标点数量],根据给定gbk/utf编码,计算出总长度。若总长度超过给定(最大)长度,则自动截取。使用场景:配合注解以及aop,解决录入数据库超长会报错的情况。
首先mysql更新数据的某个字段,一般这样...这里注意 ‘other_values’ 是一个逗号(,)分隔的字符串,如:1,2,3 如果更新多条数据而且每条记录要更新的值不同,可能很多人会这样写: foreach ($values as $id => $myv
我们在linux的操作中经常会对文件中的字符串进行替换、统计...批量替换字符串 sed -i “s/查找字段/替换字段/g” grep 查找字段 -rl 路径 -rl 表示所有子目录 sed -i s/new Str/old Str/g 'grep old Str -rl filename'
text ntext 数据类型字段的语句 代码如下:update 表名 set 字段名=replace(cast(与前面一样的字段名 as varchar(8000)) ,’原本内容’,’想要替换成什么’) 方法二:(替换其他数据类型字段的语句,实际应用中不常见) ...
随机生成不重复字段-自定义各个字段长度,批量随机生成多个不重复多段字符串(每个段可自定义长度) 批量随机生成多个不重复多段字符串(每个段可自定义长度) 哪个字段有输入长度,即为生成多少段字符 1、生成10组...
不仅是字符串前后的空格,还包含字符串中间的空格,答案是 replace,使用mysql自带的 replace 函数,另外还有个 trim 函数。 (1)mysql replace 函数 语法:replace(object,search,replace) 意思:把object中...
数据类型指定变长字符串,用法类似 数据类型,可以指定一 个不超过的正整数作为字符长度,例如: 。如果未指定长度,缺省为 在系统中, 数据类型的实际最大长度由数据库页面大小决定,具体最 大长度算法如表 的区别...
1.修改字段里的所有含有指定字符串的文字 UPDATE 表A SET 字段B = replace(字段B, 'aaa', 'bbb') example: update table set url= replace(url, 'aaa', 'bbb') 【将url字段中的aaa批量更改为bbb】 update table ...
该数据存在,我需要更新地址字段为空字符串。 单条更新: 批量更新: 总结 以上所述是小编给大家介绍的Python中elasticsearch插入和更新数据的实现方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我...
有时我们要用到批量操作时都会对字符串进行拆分,可是SQL Server中却没有自带Split函数,所以要自己来实现了。没什么好说的,需要的朋友直接拿去用吧