MySQL REPLACE() 函式



MySQL 的 REPLACE() 函式用於將給定字串中所有出現的特定子字串替換為另一個指定的子字串。

此函式接受三個引數:原始字串、要替換的子字串以及用於替換它的子字串。它可用於各種場景,例如替換句子中的特定單詞或更新資料庫中的值。

語法

以下是 MySQL REPLACE() 函式的語法:

REPLACE(str,from_str,to_str)

引數

此函式將字串、搜尋字串和替換字串作為引數。

返回值

此函式返回一個新字串,其中所有出現的搜尋字串都被替換字串替換。

示例

在下面的示例中,我們將給定字串中出現的“Hello”替換為“Hi”:

SELECT REPLACE('Hello how are you', 'Hello', 'Hi');

以下是上述程式碼的輸出:

REPLACE('Hello how are you', 'Hello', 'Hi')
Hi how are you

示例

如果傳遞給函式的任何引數為 NULL,則返回 NULL:

SELECT REPLACE('Hello how are you', 'Hello', NULL);

獲得的輸出如下:

REPLACE('Hello how are you', 'Hello', NULL)
NULL

示例

您還可以將數值作為此函式的第一個引數傳遞:

SELECT REPLACE(4125412387981236985123, 123, 000);

我們得到如下輸出:

REPLACE(4125412387981236985123, 123, 000)
4125408798069850

示例

替換時,此函式執行區分大小寫的匹配。如果您嘗試透過更改大小寫來替換子字串,此函式會生成錯誤:

SELECT REPLACE('Hello how are you', HOW, 'Hi');

以下是上述程式碼的輸出:

ERROR 1054 (42S22): Unknown column 'HOW' in 'field list'

示例

您還可以將表的列名作為此函式的引數傳遞,並替換其中的值部分。

讓我們建立一個名為“EMP”的表,並使用 CREATE 和 INSERT 語句向其中插入記錄,如下所示:

CREATE TABLE EMP(
   FIRST_NAME  CHAR(20) NOT NULL,
   LAST_NAME  CHAR(20),
   AGE INT,
   INCOME FLOAT
);

現在,讓我們使用 INSERT 語句向其中插入記錄:

INSERT INTO EMP VALUES 
('Krishna', 'Sharma', 19, 2000),
('Raj', 'Kandukuri', 20, 7000),
('Ramya', 'Ramapriya', 25, 5000),
('Mac', 'Mohan', 26, 2000);

獲得的 EMP 表如下:

FIRST_NAME LAST_NAME AGE INCOME
Krishna Sharma 19 2000
Raj Kandukuri 20 7000
Ramya Ramapriya 25 5000
Mac Mohan 26 2000

以下查詢使用 REPLACE() 函式將“FIRST_NAME”列的實體中的字串“Krishna”替換為'$$$$$$$':

SELECT FIRST_NAME, LAST_NAME, AGE, REPLACE(FIRST_NAME, 'Krishna', '$$$$$$$') as Result 
FROM EMP;

輸出

執行上述程式碼後,我們將獲得以下輸出:

FIRST_NAME LAST_NAME AGE 結果
Krishna Sharma 19 $$$$$$$ Sharma
Raj Kandukuri 20 Raj Kandukuri
Ramya Ramapriya 25 Ramya Ramapriya
Mac Mohan 26 Mac Mohan
mysql-replace-function.htm
廣告