สำหรับสิ่งนี้ คุณสามารถใช้ REGEXP_REPLACE() สมมติว่าสตริงของเราคือ −
นี่คือการสืบค้น MySQL ครั้งแรกของฉัน นี่คือการสอนครั้งแรก ฉันกำลังเรียนรู้เป็นครั้งแรก
เราจำเป็นต้องแทนที่เฉพาะคำที่เกิดขึ้นครั้งแรกเท่านั้น สมมติว่า "ก่อน" ผลลัพธ์ควรเป็น −
นี่คือแบบสอบถาม MySQL ที่สองของฉัน นี่คือการสอนครั้งแรก ฉันกำลังเรียนรู้เป็นครั้งแรก
ให้เราสร้างตาราง -
mysql> สร้างตาราง demo26−> (−> value text−> );ตกลง ตกลง 0 แถวได้รับผลกระทบ (2.04 วินาที)
แทรกระเบียนบางส่วนลงในตารางโดยใช้คำสั่ง insert -
mysql> แทรกลงในค่า demo26 ('นี่คือการสืบค้น MySQL ครั้งแรกของฉัน นี่เป็นบทช่วยสอนแรก ฉันเรียนรู้เป็นครั้งแรก'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที)
แสดงบันทึกจากตารางโดยใช้คำสั่ง select -
mysql> เลือก *จาก demo26;
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อน>+--------------------------------------------- --------------------------------------------------------------+| ค่า |+---------------------------------------------------------- ----------------------------------------------------+| นี่เป็นแบบสอบถาม MySQL ครั้งแรกของฉัน นี่คือการสอนครั้งแรก ฉันกำลังเรียนครั้งแรก |+------------------------------------------------ ----------------------------------------------------+1 แถวในชุด (0.00 วินาที)ต่อไปนี้เป็นแบบสอบถามเพื่อแทนที่เพียงการเกิดขึ้นที่ 1 -
mysql> update demo26−> set value =REGEXP_REPLACE(value, 'first', 'second', 1, 1 );Query OK, 1 แถวได้รับผลกระทบ (0.19 วินาที)แถวที่ตรงกัน:1 เปลี่ยน:1 คำเตือน:0
แสดงบันทึกจากตารางโดยใช้คำสั่ง select -
mysql> เลือก *จาก demo26;
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อน>+--------------------------------------------- ------------------------------------+| ค่า |+---------------------------------------------------------- --------------------------------------------------------------+| นี่เป็นแบบสอบถาม MySQL ที่สองของฉัน นี่คือการสอนครั้งแรก ฉันกำลังเรียนรู้เป็นครั้งแรก |+------------------------------------------------ ---------------------------------------------- +1 แถวใน ตั้งค่า (0.00 วินาที)