MySQL 中的正規表示式替換
在處理大型資料集時,通常需要根據特定模式清理或修改資料。在 MySQL 中,使用正規表示式取代列中的字元或子字串的任務可以使用 MariaDB 和 MySQL 8.0 中提供的較新的 REGEXP_REPLACE 函數來實現。
REGEXP_REPLACE 語法
REGEXP_REPLACE 函數的語法是:
REGEXP_REPLACE(col, regexp, replace)
其中:
是您要修改的欄位假設您有一個表,其中包含名為filename的列,其中包含檔案名,並且您想要刪除任何特殊字元(例如,數字、標點符號),但以下字元除外:a-z、A-Z、(,)、_、. 和 -。您可以如下使用 REGEXP_REPLACE 函數:
這將傳回包含修改後的檔案名稱的新欄位。SELECT REGEXP_REPLACE(filename, '[^a-zA-Z0-9()_ .\-]', '')
REGEXP_REPLACE 函數也支援分組,讓您執行更複雜的取代。例如,您可以使用分組來提取匹配模式的部分並在替換字串中使用它們。
這將傳回以下內容:SELECT REGEXP_REPLACE("stackoverflow", "(stack)(over)(flow)", '\2 - \1 - \3')
以上是如何使用REGEXP_REPLACE透過正規表示式修改MySQL中的資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!