求REPLACE写法?

eceg 2012-03-24 05:57:35
怎么批量替换?替换A表的name字段,name字段是varchar型。
USERID int(11)
LOGINNAME varchar(50)
NICKNAME varchar(50)
USERNAME varchar(50)

USERID LOGINNAME NICKNAME USERNAME
1 JG123 xxx xx
2 JGGaolei xx xx
3 JGWYZhi xx xx
4
5
6

update A set A.LOGINNAME=REPLACE(A.LOGINNAME, 'gp', '')
现有的LOGINNAME字段的值都是以'JG'开头,比如'JGwang'.
现在想要把开头JG替换成空。‘JG'只会出现在前2位.谢谢


...全文
104 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
rucypli 2012-03-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jordan102 的回复:]

update A set LOGINNAME=substring(LOGINNAME,3);
[/Quote]


SUBSTRING(str,pos) , SUBSTRING(str FROM pos) SUBSTRING(str,pos,len) , SUBSTRING(str FROM pos FOR len)
不带有len 参数的格式从字符串str返回一个子字符串,起始于位置 pos。带有len参数的格式从字符串str返回一个长度同len字符相同的子字符串,起始于位置 pos。 使用 FROM的格式为标准 SQL 语法。也可能对pos使用一个负值。假若这样,则子字符串的位置起始于字符串结尾的pos 字符,而不是字符串的开头位置。在以下格式的函数中可以对pos 使用一个负值。

mysql> SELECT SUBSTRING('Quadratically',5);

-> 'ratically'

mysql> SELECT SUBSTRING('foobarbar' FROM 4);

-> 'barbar'

mysql> SELECT SUBSTRING('Quadratically',5,6);

-> 'ratica'

mysql> SELECT SUBSTRING('Sakila', -3);

-> 'ila'

mysql> SELECT SUBSTRING('Sakila', -5, 3);
一起混吧 2012-03-24
  • 打赏
  • 举报
回复
update A set LOGINNAME=substring(LOGINNAME,3);
eceg 2012-03-24
  • 打赏
  • 举报
回复
就是使用msqyl的这个方法REPLACE替换字段中前2个字符。
或者有其它方法可以实现吗?

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧