คุณไม่สามารถอัปเดตด้วย regexp เช่น คุณต้องใช้ตัวดำเนินการ LIKE แทน regexp MySQL ไม่รองรับการอัพเดทด้วย regexp ตัวดำเนินการ LIKE มีดังนี้:
อัปเดต yourTableName SET yourColumnName=REPLACE(yourColumnName, yourValue)', '' )WHERE yourColumnNameLIKE '%yourValueThatWillReplace)%';
เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง
mysql> สร้างตาราง Replace_Demo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> ค่า varchar(20), -> คีย์หลัก (Id) -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.62 วินาที)ก่อน>แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้:
mysql> แทรกลงในค่า Replace_Demo(Value) ('221)'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.22 วินาที)mysql> แทรกลงในค่า Replace_Demo(Value) ('321'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.24 วินาที)mysql> แทรกลงในค่า Replace_Demo (ค่า) ('354)'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงในค่า Replace_Demo (ค่า) ('223)'); แบบสอบถามตกลง 1 แถวที่ได้รับผลกระทบ (0.09 วินาที)mysql> แทรกลงในค่า Replace_Demo(Value) ('446'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.13 วินาที)แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้:
mysql> เลือก *จาก Replace_Demo;ต่อไปนี้เป็นผลลัพธ์:
<ก่อนหน้า>+----+-------+| รหัส | ความคุ้มค่า |+---+-------+| 1 | 221) || 2 | 321 || 3 | 354) || 4 | 223) || 5 | 446 |+----+-------+5 แถวในชุด (0.00 วินาที)
นี่คือข้อความค้นหาที่จะอัปเดตด้วยตัวดำเนินการ LIKE แทน regexp:
mysql> อัปเดต Replace_Demo set Value =REPLACE(Value,'221)', '' ) -> WHERE Value like '%221)%'; ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.21 วินาที) แถวที่ตรงกัน:1 เปลี่ยนแล้ว:1 คำเตือน:0
ตรวจสอบระเบียนตารางอีกครั้งโดยใช้คำสั่ง select แบบสอบถามมีดังนี้:
mysql> เลือก *จาก Replace_Demo;
ต่อไปนี้เป็นผลลัพธ์:
<ก่อนหน้า>+----+-------+| รหัส | ความคุ้มค่า |+---+-------+| 1 | || 2 | 321 || 3 | 354) || 4 | 223) || 5 | 446 |+----+-------+5 แถวในชุด (0.00 วินาที)