mysql text类型字段内容更改的问题

text字段内的第一个字符是对应到ID字段的数字的,ID是自动增加的数字,现在ID字段的数字都被增加了300,text字段内的第一个字符为了和ID字段对应也必须增加300。概况如下表

原来的内容:
ID text ..
1 1 xx xx
2 2 xx xx
3 3 xx xx

ID被增加了300之后
ID text ..
301 1 xx xx
302 2 xx xx
303 3 xx xx

要怎么才能让text字段内的第一个字符和ID字段的数字对应呢?达到下面的效果:
ID text ..
301 301 xx xx
302 302 xx xx
303 303 xx xx

可能描述的比较模糊,还请大大们帮助
谢谢spiderrobot 的回答,但是我是个只会简单mysql命令的新手
请问可以麻烦您帮我写个范例吗?

你可以这样改:table为你的表名,text是关键字,要加`,这个符号再esc键下面,不要加shift
update table set `text`=concat(id,substring(`'text`,2,length(`text`)));
这样就可以把id都加进去了。text中数据是你insert进去的,既然自己知道要怎样的效果,一开始就要设计好。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-01
text里面的字符串做分离,用SUBSTRING把前面的数字拿出来,和ID一样做加300,然后再和后面的部分CONCAT起来,
字符转成数字的话很简单,+0,
数字要想变成字符的话,和''做concat。本回答被网友采纳
第2个回答  2019-09-04
正确的sql语句如下:
create
table
`tt`
(
`a`
char(10)
default
null,
`b`
text
)
engine=myisam
default
charset=utf8
既然知道是长类型的,就不用定义其长度了。
复制我的代码,执行一下。我测试已经通过。
第3个回答  2010-12-01
update table set [text]=convert(nvarchar(10),[id])+substring([text],2,len([text])-1)

table改成你的表名就行了
相似回答