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 )将首尾的逗号去掉。这时就删除了逗号分隔字段中的某一个值。

声明:本站所有文章和图片,如无特殊说明,均为原创发布。商业转载请联系作者获得授权,非商业转载请注明出处。
随机推荐
Node.js http 模块
Nginx 使用 Njs 授权访问文件
JavaScript class 的 this 指向
JavaScript 自定义属性 dataset
MySQL 删除逗号分隔字段中的某一个值
Express 使用 cookie-session 处理 session
Land 主题
Land APP 小程序