在mysql中,經常需要對某個字段中的字符串進行操作,比如替換某個字符或者字符串。mysql提供了replace函數來完成這個操作。
replace(str,old_string,new_string)
它的第一個參數str是需要操作的字符串,而第二個參數old_string則是要被替換掉的字符串,第三個參數new_string則是用來替換的新字符串。這個函數會返回一個新的字符串,不會修改原字符串。
SELECT replace('hello world','world','mysql');
這個查詢會返回新的字符串"hello mysql"。如果原字符串中有多個重復的子字符串,那么replace函數只會替換第一個出現的字符串,如果要替換所有的字符串,需要使用replace的變體——replace_all函數。
replace_all(str,old_string,new_string)
使用方式和replace函數一樣,不同的是它會把所有的old_string替換為new_string。
SELECT replace_all('hello world world','world','mysql');
這個查詢會返回新的字符串"hello mysql mysql"。
當然,在實際使用過程中,這兩個函數也經常和其他函數一起使用。
SELECT concat('hello ',replace('world','w','W'));
這個查詢會返回新的字符串"hello World"。
replace函數的實際應用非常廣泛,可以在模糊查詢中過濾掉不需要的字符串,或者在導入數據時對數據進行預處理等等。