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

ฉันจะใช้ MySQL แทนที่ () เพื่อแทนที่สตริงในหลายระเบียนได้อย่างไร


ฟังก์ชันแทนที่ () สามารถใช้เพื่อแทนที่สตริงด้วยสตริงอื่น เพื่อให้เข้าใจการแทนที่ () เราจำเป็นต้องสร้างตารางที่มีบางระเบียน ต่อไปนี้เป็นแบบสอบถามเพื่อสร้างตาราง

mysql> สร้างตารางแทนที่Demo -> ( -> ชื่อ varchar(200) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.55 วินาที)

แทรกระเบียนบางส่วนโดยใช้คำสั่ง INSERT แบบสอบถามเพื่อแทรกระเบียนมีดังนี้ -

mysql> แทรกลงในค่า replaceDemo ('John'); Query OK, 1 แถวที่ได้รับผลกระทบ (0.17 วินาที)mysql> แทรกลงในค่า replaceDemo ('Demo'); Query OK, 1 แถวที่ได้รับผลกระทบ (0.16 วินาที)mysql> แทรก ลงในค่าแทนที่Demo ('Smith'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่าการแทนที่การสาธิต ('สาธิต'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่าการแทนที่การสาธิต ('Carol ');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.14 วินาที)

ให้เราตรวจสอบระเบียนที่มีอยู่ในตาราง 'replaceDemo' แบบสอบถามมีดังนี้

mysql> เลือก *จาก replaceDemo;

ต่อไปนี้เป็นตัวอย่าง

<ก่อนหน้า>+-------+| ชื่อ |+-------+| จอห์น || สาธิต || สมิธ || สาธิต || Carol |+-------+5 แถวในชุด (0.00 วินาที)

ด้านบน ฉันมีค่าสาธิตสองครั้งในตารางของฉัน และฉันต้องการแทนที่ "สาธิต" ด้วยชื่อ 'อามิต' เราสามารถใช้ฟังก์ชัน replace() จาก MySQL ได้ แบบสอบถามมีดังนี้ −

mysql> UPDATE replaceDemo -> SET Name =REPLACE (ชื่อ 'Demo', 'Amit') -> WHERE Name LIKE 'Demo'; แบบสอบถามตกลง 2 แถวได้รับผลกระทบ (0.18 วินาที) แถวที่ตรงกัน:2 เปลี่ยนแล้ว:2 คำเตือน:0

ในการตรวจสอบว่าชื่อ “Demo” ถูกแทนที่ด้วยชื่อ 'Amit' หรือไม่ ให้ค้นหาดังนี้

mysql> เลือก *จาก replaceDemo;

นี่คือผลลัพธ์

<ก่อนหน้า>+-------+| ชื่อ |+-------+| จอห์น || รมิท || สมิธ || อามิต || Carol |+-------+5 แถวในชุด (0.00 วินาที)

ดังที่คุณเห็นในผลลัพธ์ข้างต้น ฉันได้เปลี่ยนชื่อ “Demo” ด้วย “Amit”