我有一个具有一系列权限的表,我需要在字符串的给定位置p中将每个用户的权限更改为Y,是否有我可以使用的SQL命令或者我必须编写程序/脚本做到了吗?
答案 0 :(得分:7)
您可以在MySQL中使用concat和substring的组合:
mysql> select concat(substring('12345',1,3),'A',substring('12345',5));
+---------------------------------------------------------+
| concat(substring('12345',1,3),'A',substring('12345',5)) |
+---------------------------------------------------------+
| 123A5 |
+---------------------------------------------------------+
您可以使用列名替换“12345”。
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html
答案 1 :(得分:0)
只需使用insert()函数即可。您为它提供源字符串,要插入的字符串和字符长度。像:
UPDATE TAB_SAP SET tsap_xgen = INSERT(tsap_xgen, 52, 1, '0') WHERE tsap_unidade = '1392398397' AND SUBSTR(tsap_xgen,52,1) != '0'
在这种情况下,我搜索属于公司(unidade)的消防员(Sapador)的记录,并作为字符串中的特定标志(SUBSTR(tsap_xgen,52,1)!=' 0' WHERE子句的一部分),然后我更新此字符串以将char更改为' 0'。使用insert()可以更改多个char,例如INSERT(field_name,52,5,' Hello')
请注意,该功能的名称是"很奇怪"因为它不是"插入"但是"擦除"放置新字符的地方的字符。