You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel查询转换:将SELECT查询改写为批量UPDATE更新语句

Laravel批量更新tour_id字段(移除数字2)

直接将原SELECT中的正则替换逻辑迁移到UPDATE语句即可,以下是两种实现方式:

方式一:通过模型执行批量更新

Collections::update([
    'tour_id' => DB::raw("REGEXP_REPLACE(tour_id,'(,2|2,|2)','')")
]);

方式二:通过DB门面执行批量更新

DB::table('collections')->update([
    'tour_id' => DB::raw("REGEXP_REPLACE(tour_id,'(,2|2,|2)','')")
]);

额外注意事项

  • 替换后可能出现首尾多余逗号的情况(例如原字段值为,2,3,替换后变为,3),如果需要清理这类无效逗号,可以嵌套TRIM函数处理:
Collections::update([
    'tour_id' => DB::raw("TRIM(BOTH ',' FROM REGEXP_REPLACE(tour_id,'(,2|2,|2)',''))")
]);
  • 执行批量更新前,务必先用原SELECT语句验证替换结果,确认符合预期后再执行更新,避免数据错误。
  • 该写法依赖数据库的REGEXP_REPLACE函数,MySQL需8.0及以上版本支持;若使用低版本MySQL,需要改用其他字符串替换方案。

内容的提问来源于stack exchange,提问作者Pranay Kachhadiya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 15:30:54