Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Thay đổi ký tự tại vị trí xác định trong chuỗi MySQL

Kết hợp CONCAT(), SUBSTRING() để thay thế ký tự tại vị trí cụ thể (MySQL không có hàm REPLACE tại vị trí).

Ví dụ: Thay ký tự thứ 4 (vị trí 4) thành 'X'

Chuỗi gốc: '98764' → Kết quả: '987X4'

mysql> create table DemoTable ( 
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    Value varchar(200) 
); 
Query OK, 0 rows affected (0.60 sec)
mysql> insert into DemoTable(Value) values('98764'); 
Query OK, 1 row affected (0.17 sec)

Truy vấn thay thế

mysql> select concat(substring(Value,1,3),'X',substring(Value,5)) from DemoTable;
+-----------------------------------------------------+
| concat(substring(Value,1,3),'X',substring(Value,5)) |
+-----------------------------------------------------+
| 987X4                                               |
+-----------------------------------------------------+

Công thức chung: CONCAT(SUBSTRING(str,1,pos-1), newChar, SUBSTRING(str,pos+1))

MySQL 8.0+: Có thể dùng REGEXP_REPLACE() hoặc tạo function wrapper để tái sử dụng.