sql语句查询字段中以逗号分隔的第一个内容,修改另一个数据

       记录一次修改数据库产生的bug,本意是将一个值赋给另一个值,但由于对所存数据了解不全面,致使部分数据为空,这边操作的数据是图片地址,一般存地址会以逗号分隔,所以需要从另一个字段取第一个图片来填充这些空值。

     这里使用substring_index(column, ',', 1)方法来实现。 

SELECT SUBSTRING_INDEX(image, ',', 1), image FROM t_virtual_goods WHERE platform_goods_type = 'physical';

 这是查询然后对比,然后需要修改

UPDATE t_virtual_goods SET cover_image = SUBSTRING_INDEX(image, ',', 1) WHERE platform_goods_type = 'physical';

问题就这样解决了,另外扩展下substring的用法

sql中substring()的相关用法介绍:

1、SUBSTRING(name,3) 截取name这个字段 从第三个字符开始,之后的所有个字符

SELECT SUBSTRING('1234567',3)

结果:34567

2、SUBSTRING(name, -4) 截取name这个字段的第 4 个字符位置(倒数)开始取,直到结束

SELECT SUBSTRING('1234567',-4)

结果:4567

3、SUBSTRING(name, -4,2) 截取name这个字段的第 4 个字符位置(倒数)开始取,只截取之后的2个字符

SELECT SUBSTRING('1234567',-4,2)

结果:45

4、substring_index('www.baidu.com', '.', 2) 截取第二个 '.' 之前的所有字符

SELECT substring_index('www.baidu.com', '.', 2)

结果: www.baidu

 

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