MySQL 删除逗号分隔字段中的某一个值

文章表中,tags 字段存储着一个或者多个标签,标签之间使用“,”隔开,比如,一篇文章的 tags 字段是 “前端,JavaScript,SCSS,HTML”,现在想删除“JavaScript”,变成 “前端,SCSS,HTML”。


方法如下:

UPDATE tb_article AS a SET a.tags=TRIM(BOTH ',' FROM REPLACE(concat(',',a.`tags`,','), ',JavaScript,', '')) WHERE FIND_IN_SET('JavaScript', a.tags);


核心部分是:

UPDATE tb_article AS a SET a.tags=TRIM(BOTH ',' FROM REPLACE(concat(',',a.`tags`,','), ',JavaScript,', ''))


解释:

先给 tags 字段首尾拼接两个逗号, 变为:“,前端,JavaScript,SCSS,HTML,” 再使用replace将 “,JavaScript,” 替换为一个逗号后。

这时字符串变成“,前端,SCSS,HTML,” 再使用 trim(both from )将首尾的逗号去掉。这时就删除了逗号分隔字段中的某一个值。

声明:本站所有文章,如无特殊说明或,均为原创发布。商业转载请联系作者获得授权,非商业转载请注明出处。本站所有图片如无特殊说明均为AI生成。
真诚赞赏,手留余香
赞赏
后端其他,前端
RESTful API 执行 delete 返回204无法获取 Body
2023-05-10
JavaScript,算法
JavaScript 中 0.1 加 0.2 不等于 0.3 的原因和解决方法
2023-07-17
Jone
在什么样的花园里面,挖呀挖呀挖
种什么样的种子,开什么样的花
随机推荐
Node.js 的 URL 的模块
Rollup 教程
JavaScript 代码混淆加密工具 javascript-obfuscator
Linux 中 top 命令的 Load Average 含义
curl 的用法指南
p 标签里面不能嵌套块级元素
阿里云内容安全 API 签名机制
使用 MySQL 线程池对压力测试的影响
MySQL 数据库中货币单位如何存储
FFmpeg 修改默认音轨

微信联系我

夜间模式切换
回到顶部