使用Fluent或Eloquent在MySQL数据库中搜索模式并替换它的最佳方法是什么?
我在Laravel论坛中看到您应该能够像这样进行正则表达式选择
// Searching for the word "mypattern"...
Page::where('words', 'regexp', DB::raw('/'bmypattern'b/'))->get();
但是我已经尝试过这种方法,它似乎没有选择我想要的行。无论如何,实际上不想只是选择 - 我想实际进行搜索并替换为正则表达式。
使用Laravel提供的选项执行此操作的最佳方法是什么?
我不相信"正则表达式"是 Laravel 4 中的有效查询运算符。
似乎泰勒实际上已经在问题 #838 下对 Github 上的这个问题发表了评论,他建议使用 whereRaw 而不是 where。
这是一个关于MySQL正则表达式替换的SO问题,它可以帮助您实现这一点。
你可以
使用MySQL User Defined Function
(UDF)来询问你所问的问题。请注意,使用 UDF
并不总是兼容的,但可能足以满足您的情况。
UDF 包 mod 将把你的正则表达式实现为用户定义函数,并得到正则表达式REGEXP
运算符的支持。
请参阅 MySQL 正则表达式函数
另一种选择是转储您的数据并进行查找和替换。