1.png

如上圖所示,我們在資料表中有一個description欄位,

我們希望能夠利用SQL一次性的找到所有在table的description欄位中每一筆資料包含"這是來自"的關鍵字,取代成"國外進口從"

那就可以利用以下語法來完成

UPDATE 資料表名稱 SET 欄位名稱 = REPLACE ( 欄位名稱 , 被取代值, 要取代值 )

如我們的需求,我們需要將SQL語法改成:

UPDATE product set description  = REPLACE (description, '這是來自', '國外進口從')

執行結果就會如下圖所示

2.png

 

因為上面的範例是屬於簡單的demo,所以可能感覺不出來這個語法好用之處

一旦你的資料量非常多,加上你要取代的部分內容不知道哪一筆資料才有

透過這個語法就能幫你做到一次性的去找到所有每一筆資料取代成你要的取代的內容

 

此外,像是上面的crated_date是timestamp的類型,如果要將2022全部取代成2023則語法如下:

UPDATE product set created_date  = REPLACE (created_date, 2022, 2023)

結果如下圖:

3.png

 

需要特別注意的是,如果你的欄位類型是屬於text,則不能使用上面的語法,需改用下面語法


UPDATE 資料表名稱 SET text欄位名稱 = REPLACE(CAST(text欄位名稱 AS varchar(MAX)),'被取代值', '要取代值')

 

arrow
arrow
    創作者介紹
    創作者 Mark Zhang 的頭像
    Mark Zhang

    讀處

    Mark Zhang 發表在 痞客邦 留言(0) 人氣()