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

วิธีแทนที่เฉพาะค่าที่ซ้ำกันครั้งแรกในสตริงใน MySQL


สำหรับสิ่งนี้ คุณสามารถใช้ 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 วินาที)