我用replace更改了supesite的一个字段内容,替换语句:
update tablename set fieldA=replace(fieldA,'no','Welcome');替换后就调用失败了,查看了一下数据库,原来问题出在这里:修改前
a:1:{i:0;s:2:"no";}修改后a:1:{i:0;s:2:"Welcome";}问题就在于 字段内容no是修改了,但是s:2并没有得到修改,所以调用失败。
正确的修改后结果应该是a:1:{i:0;s:7:"Welcome";}请教各位,怎样才能实现这种正确的批量替换,谢谢
update tablename set fieldA=replace(fieldA,'no','Welcome');替换后就调用失败了,查看了一下数据库,原来问题出在这里:修改前
a:1:{i:0;s:2:"no";}修改后a:1:{i:0;s:2:"Welcome";}问题就在于 字段内容no是修改了,但是s:2并没有得到修改,所以调用失败。
正确的修改后结果应该是a:1:{i:0;s:7:"Welcome";}请教各位,怎样才能实现这种正确的批量替换,谢谢
我不懂SQL,但是貌似,S:7是统计字段字符数,请大家指教。
我继续请教一下,您的意思是,a:1:{i:0;s:2: ****;},这个参数不是mysql本身的参数,而是supesite产生的?
需要需要修改必须修改supesite程序?谢谢!
改成
a:1:{i:0;s:7:"Welcome";}一共有2个地方要修改,2-->7,no-->Welcome
那么用update tablename set fieldA=replace(replace(fieldA,'no','Welcome'),'s:2','s:7');
进行2次替换,肯定是可以的。mysql> select replace(replace('a:1:{i:0;s:2:"no";}','no','Welcome'),'s:2','s:7');
+--------------------------------------------------------------------+
| replace(replace('a:1:{i:0;s:2:"no";}','no','Welcome'),'s:2','s:7') |
+--------------------------------------------------------------------+
| a:1:{i:0;s:7:"Welcome";} |
+--------------------------------------------------------------------+
1 row in set (0.00 sec)至于你的2变成7是怎么来的,由你的业务规则决定。