|
...
|
...
|
@@ -132,25 +132,31 @@ class lyhDemo extends Command |
|
|
|
public function _actions() {
|
|
|
|
echo '565' . PHP_EOL;
|
|
|
|
ProjectServer::useProject(565);
|
|
|
|
|
|
|
|
$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';
|
|
|
|
$brands = array_unique(array_map('trim', explode(',', $str)));
|
|
|
|
// 获取所有列名
|
|
|
|
$columns = $connection->getSchemaBuilder()->getColumnListing($table);
|
|
|
|
|
|
|
|
// 遍历每个字段执行更新
|
|
|
|
$brandsStr = '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';
|
|
|
|
$brands = array_unique(array_map('trim', explode(',', $brandsStr)));
|
|
|
|
|
|
|
|
// 获取文本类型字段(varchar, text等)
|
|
|
|
$columns = $connection->table('information_schema.columns')
|
|
|
|
->where('table_schema', DB::getConfig('custom_mysql.database'))
|
|
|
|
->where('table_name', $table)
|
|
|
|
->whereIn('data_type', ['varchar', 'text', 'mediumtext', 'longtext'])
|
|
|
|
->pluck('column_name')
|
|
|
|
->toArray();
|
|
|
|
|
|
|
|
// 字段更新
|
|
|
|
foreach ($columns as $field) {
|
|
|
|
if ($field === 'id' || $field === 'image' || $field === 'og_image') continue; // 跳过主键
|
|
|
|
// 构造多重 REPLACE()
|
|
|
|
$sqlField = "`$field`";
|
|
|
|
$updateExpr = $sqlField;
|
|
|
|
|
|
|
|
foreach ($brands as $brand) {
|
|
|
|
$brand = addslashes($brand); // 避免特殊字符
|
|
|
|
$updateExpr = "REPLACE($updateExpr, '$brand-', '')";
|
|
|
|
$updateExpr = "REPLACE($updateExpr, '$brand', '')";
|
|
|
|
$safeBrand = addslashes($brand);
|
|
|
|
$updateExpr = "REPLACE(REPLACE($updateExpr, '$safeBrand-', ''), '$safeBrand', '')";
|
|
|
|
}
|
|
|
|
|
|
|
|
$sql = "UPDATE `$table` SET $sqlField = $updateExpr WHERE $sqlField IS NOT NULL AND $sqlField != ''";
|
|
|
|
echo "执行字段:$field" . PHP_EOL;
|
|
|
|
$connection->update($sql);
|
...
|
...
|
|