MySQL中,我們有時需要對某一列的字符串進行批量處理,例如去掉某個固定字符串。那么該如何操作呢?
首先,我們需要使用MySQL的Replace函數。該函數可以將字符串中的某個子串替換成另一個子串,語法如下:
REPLACE(str, from_str, to_str)
其中,str為需要進行替換的字符串,from_str為要被替換的子串,to_str為需要替換成的子串。
舉個例子,假設我們有一個名為user的表,其中有一列為email,我們需要去掉所有email中的后綴"@gmail.com"。那么代碼如下:
UPDATE user SET email = REPLACE(email, '@gmail.com', '');
以上代碼將對user表中的所有email,將"@gmail.com"替換成空字符串,即刪除后綴。
如果我們需要更新的字符串不只是一個后綴,而是一個中間字符串,該如何操作呢?我們可以使用Substring_index函數。該函數可以返回字符串中,指定分隔符(例如"@")前后的子串。語法如下:
SUBSTRING_INDEX(str, delim, count)
其中,str為要進行處理的字符串,delim為分隔符,count為指定返回的子串為分隔符之前(或之后)的第幾個子串。
例如,我們需要將email中"yahoo"替換成"hotmail",那么代碼如下:
UPDATE user SET email = CONCAT( SUBSTRING_INDEX(email, '@', 1), --獲取@前的子串 '@hotmail.com', --更新后綴 SUBSTRING_INDEX(email, '@', -1) --獲取@后的子串,并保留@符號 ) WHERE email LIKE '%yahoo%';
以上代碼將對user表中所有含有"yahoo"的email,將其中的"yahoo"替換成"hotmail",并在原email的基礎上更新成新的email。
上一篇css畫一條分界線 實線
下一篇mysql 批量加載