作者 lyh

gxAiblog自动发布

@@ -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');