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

MySQL สามารถอัพเดตด้วย regexp ได้หรือไม่?


คุณไม่สามารถอัปเดตด้วย 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 วินาที)