正在显示
1 个修改的文件
包含
10 行增加
和
8 行删除
| @@ -130,24 +130,26 @@ class lyhDemo extends Command | @@ -130,24 +130,26 @@ class lyhDemo extends Command | ||
| 130 | 130 | ||
| 131 | 131 | ||
| 132 | public function _actions(){ | 132 | public function _actions(){ |
| 133 | - echo '565'.PHP_EOL; | 133 | + echo '565' . PHP_EOL; |
| 134 | ProjectServer::useProject(565); | 134 | ProjectServer::useProject(565); |
| 135 | $table = 'gl_product'; | 135 | $table = 'gl_product'; |
| 136 | - $filed = 'route'; | 136 | + $filed = 'seo_mate'; |
| 137 | $str = 'Trimos,insize,Fowler,Mahr,Starrett,Tesa,Mitutoyo,Wixey,Shars,Fisso,Spi,Grizzly,Accumaster,Accuremote,Baker,Sharpe,Compac,Earth,Etalon,Federal,Fell,Fisso,Fowler,Gem,Grizzly,Husky,iGaging,Insize,Kanetec,Magnetics,Mighty,Mitutoyo,Noga,Pittsburgh,Procheck,Saker,Scherr Tumico,Shars,Shinwa,SPI,Starrett,Tesa,Technidea,Trimos,Verdict,Wyler,Wixey'; | 137 | $str = 'Trimos,insize,Fowler,Mahr,Starrett,Tesa,Mitutoyo,Wixey,Shars,Fisso,Spi,Grizzly,Accumaster,Accuremote,Baker,Sharpe,Compac,Earth,Etalon,Federal,Fell,Fisso,Fowler,Gem,Grizzly,Husky,iGaging,Insize,Kanetec,Magnetics,Mighty,Mitutoyo,Noga,Pittsburgh,Procheck,Saker,Scherr Tumico,Shars,Shinwa,SPI,Starrett,Tesa,Technidea,Trimos,Verdict,Wyler,Wixey'; |
| 138 | $arr = explode(',', $str); | 138 | $arr = explode(',', $str); |
| 139 | foreach ($arr as $val) { | 139 | foreach ($arr as $val) { |
| 140 | - $val = strtolower(trim($val)); // 去除空白并转小写 | ||
| 141 | - $str_s = $val.'-'; | 140 | + $val = trim($val); // 保留大小写,因为匹配用正则忽略大小写 |
| 141 | + $str_s = $val . '-'; | ||
| 142 | + // 先替换包含 "val-" 的 | ||
| 142 | DB::connection('custom_mysql')->table($table) | 143 | DB::connection('custom_mysql')->table($table) |
| 143 | - ->whereRaw("LOWER($filed) LIKE ?", ["%{$str_s}%"]) // 不区分大小写匹配包含 | 144 | + ->whereRaw("LOWER($filed) LIKE ?", ['%' . strtolower($str_s) . '%']) |
| 144 | ->update([ | 145 | ->update([ |
| 145 | - $filed => DB::raw("REPLACE(LOWER($filed), '$str_s', '')") // 只替换对应字符串,且都转小写替换 | 146 | + $filed => DB::raw("REGEXP_REPLACE($filed, '" . preg_quote($str_s, '/') . "', '', 1, 0, 'i')") |
| 146 | ]); | 147 | ]); |
| 148 | + // 再替换包含 "val" 的(不带 -) | ||
| 147 | DB::connection('custom_mysql')->table($table) | 149 | DB::connection('custom_mysql')->table($table) |
| 148 | - ->whereRaw("LOWER($filed) LIKE ?", ["%{$val}%"]) // 不区分大小写匹配包含 | 150 | + ->whereRaw("LOWER($filed) LIKE ?", ['%' . strtolower($val) . '%']) |
| 149 | ->update([ | 151 | ->update([ |
| 150 | - $filed => DB::raw("REPLACE(LOWER($filed), '$val', '')") // 只替换对应字符串,且都转小写替换 | 152 | + $filed => DB::raw("REGEXP_REPLACE($filed, '" . preg_quote($val, '/') . "', '', 1, 0, 'i')") |
| 151 | ]); | 153 | ]); |
| 152 | } | 154 | } |
| 153 | DB::disconnect('custom_mysql'); | 155 | DB::disconnect('custom_mysql'); |
-
请 注册 或 登录 后发表评论