Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ค้นหาและแทนที่ตัวอักษรต้นสตริงใน MySQL ด้วย INSERT()

ใช้ INSERT(str, pos, len, newstr) แทนที่ตัวอักษรตั้งแต่ตำแหน่ง pos ความยาว len ด้วย newstr

สร้างตารางตัวอย่าง

mysql> CREATE TABLE DemoTable (
    -> ZipCode VARCHAR(200)
    -> );

เพิ่มข้อมูลตัวอย่าง

mysql> INSERT INTO DemoTable VALUES('9030'), ('3902'), ('9083'), ('9089');

แสดงข้อมูล

mysql> SELECT * FROM DemoTable;

ผลลัพธ์:

+---------+
| ZipCode |
+---------+
| 9030    |
| 3902    |
| 9083    |
| 9089    |
+---------+

คำสั่งแทนที่ 2 ตัวแรกของ ZipCode ที่ขึ้นต้น 90

mysql> UPDATE DemoTable SET ZipCode = INSERT(ZipCode, 1, 2, 'Country-AUS-') WHERE ZipCode LIKE '90%';

ตรวจสอบผลลัพธ์

mysql> SELECT * FROM DemoTable;

ผลลัพธ์:

+----------------+
| ZipCode        |
+----------------+
| Country-AUS-30 |
| 3902           |
| Country-AUS-83 |
| Country-AUS-89 |
+----------------+

คำอธิบาย: INSERT(ZipCode, 1, 2, 'Country-AUS-') = ตำแหน่ง 1 ความยาว 2 (คือ '90') แทนด้วย 'Country-AUS-' | WHERE ZipCode LIKE '90%' กรองเฉพาะที่ขึ้นต้น 90