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

本文分享了在数据库中更新图片字段时遇到的Bug及解决方案,通过使用substring_index方法从逗号分隔的图片地址中选取首个图片作为封面,同时介绍了SQL中substring函数的多种实用用法。

       记录一次修改数据库产生的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

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值