|
...
|
...
|
@@ -132,25 +132,38 @@ class lyhDemo extends Command |
|
|
|
public function _actions(){
|
|
|
|
echo '565' . PHP_EOL;
|
|
|
|
ProjectServer::useProject(565);
|
|
|
|
$table = 'gl_product_keyword';
|
|
|
|
$filed = 'route';
|
|
|
|
$table = 'gl_product';
|
|
|
|
$connection = DB::connection('custom_mysql');
|
|
|
|
// 要替换的品牌关键词
|
|
|
|
$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';
|
|
|
|
$arr = explode(',', $str);
|
|
|
|
$arr = array_map('trim', explode(',', $str)); // 去空格
|
|
|
|
// 获取所有字段名(列名)
|
|
|
|
$columns = $connection->getSchemaBuilder()->getColumnListing($table);
|
|
|
|
// 获取所有数据
|
|
|
|
$rows = $connection->table($table)->select('*')->get();
|
|
|
|
foreach ($rows as $row) {
|
|
|
|
$updateData = [];
|
|
|
|
foreach ($columns as $field) {
|
|
|
|
// 只处理文本字段,跳过 id 或 null 字段
|
|
|
|
if ($field === 'id' || !is_string($row->$field)) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
$original = $row->$field;
|
|
|
|
$replaced = $original;
|
|
|
|
foreach ($arr as $val) {
|
|
|
|
$val = trim($val); // 保留大小写,因为匹配用正则忽略大小写
|
|
|
|
$str_s = $val . '-';
|
|
|
|
// 先替换包含 "val-" 的
|
|
|
|
DB::connection('custom_mysql')->table($table)
|
|
|
|
->whereRaw("LOWER($filed) LIKE ?", ['%' . strtolower($str_s) . '%'])
|
|
|
|
->update([
|
|
|
|
$filed => DB::raw("REGEXP_REPLACE($filed, '" . preg_quote($str_s, '/') . "', '', 1, 0, 'i')")
|
|
|
|
]);
|
|
|
|
// 再替换包含 "val" 的(不带 -)
|
|
|
|
DB::connection('custom_mysql')->table($table)
|
|
|
|
->whereRaw("LOWER($filed) LIKE ?", ['%' . strtolower($val) . '%'])
|
|
|
|
->update([
|
|
|
|
$filed => DB::raw("REGEXP_REPLACE($filed, '" . preg_quote($val, '/') . "', '', 1, 0, 'i')")
|
|
|
|
]);
|
|
|
|
$replaced = str_ireplace($val . '-', '', $replaced); // 替换 brand-
|
|
|
|
$replaced = str_ireplace($val, '', $replaced); // 替换 brand
|
|
|
|
}
|
|
|
|
if ($replaced !== $original) {
|
|
|
|
$updateData[$field] = $replaced;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// 有变更再更新
|
|
|
|
if (!empty($updateData)) {
|
|
|
|
$connection->table($table)
|
|
|
|
->where('id', $row->id)
|
|
|
|
->update($updateData);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
DB::disconnect('custom_mysql');
|
|
|
|
}
|
...
|
...
|
|