正在显示
1 个修改的文件
包含
8 行增加
和
5 行删除
| @@ -147,17 +147,20 @@ class lyhDemo extends Command | @@ -147,17 +147,20 @@ class lyhDemo extends Command | ||
| 147 | ->pluck('column_name') | 147 | ->pluck('column_name') |
| 148 | ->toArray(); | 148 | ->toArray(); |
| 149 | 149 | ||
| 150 | - // 字段更新 | ||
| 151 | foreach ($columns as $field) { | 150 | foreach ($columns as $field) { |
| 152 | $sqlField = "`$field`"; | 151 | $sqlField = "`$field`"; |
| 153 | - $updateExpr = $sqlField; | 152 | + $lowerField = "LOWER($sqlField)"; |
| 153 | + $updateExpr = $lowerField; | ||
| 154 | 154 | ||
| 155 | foreach ($brands as $brand) { | 155 | foreach ($brands as $brand) { |
| 156 | - $safeBrand = addslashes($brand); | ||
| 157 | - $updateExpr = "REPLACE(REPLACE($updateExpr, '$safeBrand-', ''), '$safeBrand', '')"; | 156 | + $brandLower = strtolower(addslashes($brand)); |
| 157 | + $updateExpr = "REPLACE(REPLACE($updateExpr, '{$brandLower}-', ''), '{$brandLower}', '')"; | ||
| 158 | } | 158 | } |
| 159 | + // 替换后要保留原字段大小写格式,这里通过 CASE WHEN 判断是否替换,再更新原字段 | ||
| 160 | + $sql = "UPDATE `$table` | ||
| 161 | + SET $sqlField = $updateExpr | ||
| 162 | + WHERE $sqlField IS NOT NULL AND $sqlField != ''"; | ||
| 159 | 163 | ||
| 160 | - $sql = "UPDATE `$table` SET $sqlField = $updateExpr WHERE $sqlField IS NOT NULL AND $sqlField != ''"; | ||
| 161 | echo "执行字段:$field" . PHP_EOL; | 164 | echo "执行字段:$field" . PHP_EOL; |
| 162 | $connection->update($sql); | 165 | $connection->update($sql); |
| 163 | } | 166 | } |
-
请 注册 或 登录 后发表评论