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

ลบข้อมูลบางส่วนในฟิลด์ MySQL ด้วย REPLACE()

ใช้คำสั่ง UPDATE ร่วมกับฟังก์ชัน REPLACE() เพื่อลบหรือแทนที่ข้อความบางส่วนในคอลัมน์ TEXT/VARCHAR

ตัวอย่างการใช้งาน

สร้างตารางเก็บข้อมูลเกม (รูปแบบ XML-like):

mysql> create table DemoTable1583 (
    -> GameDetails text
    -> );
Query OK, 0 rows affected (1.38 sec)

เพิ่มข้อมูลทดสอบ:

mysql> insert into DemoTable1583 values('<GameName>=Candy</GameName>,<GamePrice>2000</GamePrice>');
Query OK, 1 row affected (0.53 sec)
mysql> insert into DemoTable1583 values('<GameName>=Lucky29</GameName>,<GamePrice>10000</GamePrice>');
Query OK, 1 row affected (0.25 sec)

ดูข้อมูลก่อนแก้ไข:

mysql> select * from DemoTable1583;
+------------------------------------------------------------+
| GameDetails                                                |
+------------------------------------------------------------+
| <GameName>=Candy</GameName>,<GamePrice>2000</GamePrice>  |
| <GameName>=Lucky29</GameName>,<GamePrice>10000</GamePrice> |
+------------------------------------------------------------+
2 rows in set (0.00 sec)

คิวรีลบข้อความเฉพาะส่วน

mysql> update DemoTable1583 
    -> set GameDetails = replace(GameDetails, '<GameName>=Candy</GameName>', '');
Query OK, 1 row affected (0.38 sec)
Rows matched: 2  Changed: 1  Warnings: 0

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

mysql> select * from DemoTable1583;
+------------------------------------------------------------+
| GameDetails                                                |
+------------------------------------------------------------+
| ,<GamePrice>2000</GamePrice>                              |
| <GameName>=Lucky29</GameName>,<GamePrice>10000</GamePrice> |
+------------------------------------------------------------+
2 rows in set (0.00 sec)

คำอธิบาย

REPLACE(คอลัมน์, 'ข้อความเก่า', 'ข้อความใหม่') จะค้นหาและแทนที่ทุกครั้งที่พบ ในตัวอย่างแทนที่ด้วยสตริงว่าง '' เพื่อ "ลบ" ส่วนที่ต้องการออก

ข้อควรระวัง: WHERE clause ไม่ได้ระบุ ทำให้สแกนทุกแถว (Rows matched: 2) แต่เปลี่ยนแค่แถวที่มีข้อความตรงกัน (Changed: 1) ควรเพิ่ม WHERE เพื่อประสิทธิภาพ