• เพชรเกษม 81/5

หาและเปลี่ยนคำที่เจอในฟิลด์ Find and Replace some text in field


สำหรับ MySQL เคยเป็นบ้างไหมครับ ที่เรามีค่าที่ผิดพลาดอยู่ในพวก text หรือ varchar แต่เราแค่อยากเปลี่ยนเฉพาะคำนั้น ไม่ได้ต้องการเปลี่ยนทั้ง text อย่างเช่น

table: t_data
field: data_value(text)

abcdefg https://www.kanexkane.com hijklmnopqrstuvwxyz

ซึ่งในกรณีนี้เคนต้องการเปลี่ยนจาก https://www.kanexkane.com เป็น https://www.yongyee.com เท่านั้นเอง แต่อยากให้คงตัวข้อมูลด้านหน้า และด้านหลังเอาไว้

ให้เราใช้โค้ดชุดนี้ครับ

UPDATE table_name SET field = REPLACE(field, 'foo', 'bar') WHERE INSTR(field, 'foo') > 0;

โดยที่เปลี่ยน

  • table_name เป็นชื่อ table ของเรา
  • field เป็นชื่อฟิลด์ของเรา
  • ‘foo’ เป็นคำที่เราต้องการจะเปลี่ยน
  • ‘bar’ คือคำใหม่ที่เราต้องการเอาเข้าไปแทนใน ‘foo’

ดังนั้นจะเปลี่ยนโค้ดที่เคนต้องการได้มาเป็นแบบนี้ครับ

UPDATE t_data SET data_value = REPLACE( data_value, 'https://www.kanexkane.com', 'https://www.yongyee.com' ) WHERE INSTR( data_value, 'https://www.kanexkane.com' ) > 0;

ขอขอบคุณ Joe Skora จาก StackOverflow

Leave a Reply

Please Login to comment
avatar
  Subscribe  
Notify of