mysql数据库update时只更新部分数据方法

需求:更新url中最一个字符的'-1'改为'-5',前面的内容保持不变

url列的内容如下:http://h5game.ecs.cedarmg.com/a/captal/dispther.do?deviceid=b-01-1

SELECT * from qrmsg WHERE url LIKE '%1'

http://h5game.ecs.cedarmg.com/c/captal/dispther.do?deviceid=b-01-1

 

需要把最后这个-1改成-5

 

操作方式如下:

UPDATE qrmsg SET url = CONCAT(substring_index(url,'-','2'),'-5') WHERE url LIKE '%1'

 

 

SELECT * from qrmsg WHERE url LIKE '%5'

http://h5game.ecs.cedarmg.com/ca/capital/dispather.do?deviceid=b-01-5


利用的函数如下:

1substring_index(str,delim,count)

      str:要处理的字符串

      delim:分隔符

      count:计数

 

例子:str=www.google.com

      substring_index(str,'.',1)

      结果是:www

      substring_index(str,'.',2)

      结果是:www.google

      也就是说,如果count是正数,那么就是从左往右数,第N个分隔符的左边的全部内容

      相反,如果是负数,那么就是从右边开始数,第N个分隔符右边的所有内容,如:

      substring_index(str,'.',-2)

      结果为:google.com

     有人会为,如果我呀中间的的google怎么办?

     很简单的,两个方向:

     1、从右数第二个分隔符的右边全部,再从左数的第一个分隔符的左边:

substring_index(substring_index(str,'.',-2),.,1);

     2、你懂得!

 

2concat是连接几个字符串,可以多个哦。

     concat('wo','lin','xue','bin')

     结果就是wolinxuebin



参考blog:

http://blog.csdn.net/wolinxuebin/article/details/7845917 

你可能感兴趣的:(mysql,update)