การ update แทนค่าคำบางคำ ด้วย คำสั่ง Update SQL ( Mysql )

         คำสั่ง Query ของ MySQL นั้นเป็นคำสั่งที่ช่วยในการกรองข้อมูลและการจัดการที่เกี่ยวข้องกับข้อมูล เพื่อให้ได้ข้อมูลตามความต้องการจากตารางในระบบฐานข้อมูลออกมาในรูปแบบที่จะมาใช้ประโยชน์ต่อ ไม่ว่าจะเป็นการนำข้อมูลเพื่อมาวิเคราะห์ข้อมูลทางด้านสถิติ, ความน่าจะเป็น, การพิจารณา, นำมาตัดสินใจ หรือจะเป็นด้านการจัดการข้อมูลที่มีปริมาณมากอาทิเช่น การINSERT (เพิ่มข้อมูล), DELETE (ลบข้อมูล), UPDATE (อัพเดตข้อมูล) แก้ไขเปลี่ยนแปลงข้อมูลที่เราต้องการปรับเปลี่ยนได้ โดยที่ไม่ต้องแก้ไขข้อมูลที่ละเรกคอร์ด ซึ่งหากเราใช้ Query ก็จะสามารถจัดการข้อมูลได้หลายเรกคอร์ดตามเงื่อนไขที่เราต้องใส่ลงไปได้อีกด้วย ซึ่งในบทความนี้จะมาแนะนำการจัดการข้อความที่เราต้องการจะแทนที่คำหรือข้อความด้วยคำสั่ง REPLACE

 

          คำสั่ง REPLACE นั้นเป็นคำสั่งที่ใช้สำหรับการแทนที่ข้อความหนึ่งเป็นอีกข้อความหนึ่งตามที่เราต้องการที่จะเปลี่ยนแปลงหรือแก้ไข ซึ่งหากมีข้อมูลหลายๆ เรกคอร์ดโดยถ้าเราจะต้องเข้าไปแก้ที่ละเรกคอร์ดก็คงไม่ดีแน่ อาจจะทำให้เสียเวลาและเกิดข้อผิดพลาดของโปรแกรมหรือข้อมูลที่มาจากการแก้ข้อมูลด้วยตัวเอง ซึ่งใน SQL จะมีคำสั่ง REPLACE เข้ามาช่วยในการจัดการกับจำนวนข้อมูลที่ต้องการแก้ไขในการแทนที่ได้หลายๆ เรกคอร์ด ซึ่งจะใช้ควบคู่กับคำสั่ง Update ในการแก้ไขข้อมูลใน Table ให้อีกด้วย

สมมติในฐานข้อมูลเรามีข้อมูลใน Table ที่ชื่อ customer ที่มีข้อมูลใน Field ชื่อ name ซึ่งเราต้องการเปลี่ยนข้อความจาก "xxx" เป็น "yyy"  

ตัวอย่างในฐานข้อมูลที่มีช่อง name ที่เราต้องการเปลี่ยนจาก "xxx" เป็น "yyy" ได้ที่ละหลายเรกคอร์ด
ตัวอย่างข้อมูลในช่อง name

การใช้คำสั่ง REPLACE 

UPDATE customer
SET `name` = REPLACE(`name`,"xxx","yyy")

คำสั่ง REPLACE จะใช้คู่กับคำสั่ง UPDATE ที่มีหน้าที่ในการอัพเดตข้อมูลตามเงื่อนไขที่เรากำหนดเอาไว้ โดยรูปแบบการใช้งานมีดังนี้

UPDATE Table Name เป็นคำสั่งในการอัพเดตข้อมูล ที่จะต้องทำการระบุชื่อ Table ที่ต้องการเปลี่ยนแปลง

SET เป็นการระบุชื่อ field ที่ต้องเปลี่ยนนั้น สามารถระบุ Field ที่ต้องการแก้ไขได้มากกว่า 1 Field ด้วยการคั้นใช้เครื่องหมายคอมม่า (,) เช่น SET name = 'John', surname = 'Partner' 

REPLACE  จะมีรูปแบบการใช้งานเป็น REPLACE('Field Name', 'คำที่ค้นหา','คำแทนที่')

ผลลัพท์เมื่อเราใช้คำสั่ง REPLACE ก็จะทำการเปลี่ยนจาก "xxx" เป็น "yyy" ซึ่งเราก็จะเห็นว่ามีการแทนที่คำที่เป็น "xxx" ทั้งหมดที่เจอในทุกเรกคอร์ด ซึ่งเมื่อเจอคำว่า "xxx" แล้วจะเปลี่ยนเป็น "yyy" แทนที่ทันที 

ผลลัพท์หลังจากที่ใช้คำสั่ง REPLACE ที่แทนที่จาก "xxx" เป็น "yyy"
ข้อมูลที่ใช้คำสั่ง REPLACE

หากต้องการแก้ไขข้อมูลเฉพาะบางอย่าง ก็สามารถใส่กำหนดเงื่อนไขเพิ่มเติมด้วยการใช้คำสั่ง WHERE ต่อท้าย SET ได้เช่น ต้องการแทนที่ "xxx" เป็น "yyy" ในช่อง Field ที่ชื่อ name แค่เฉพาะที่ id เท่ากับ 3 

UPDATE customer
SET `name` = REPLACE(`name`,"xxx","yyy") 
WHERE id = 3

 ผลลัพท์ที่เมื่อกำหนด WHERE ให้เปลี่ยน "xxx" เป็น "yyy" เฉพาะ id ที่เท่ากับ 3 ก็จะเห็นได้ว่าข้อความเดิมใน id ที่เป็น 3 นั้นที่เคยเป็น "minxxx" ได้ถูกเปลี่ยนเป็น "minyyy" ด้วยคำสั่ง REPLACE ที่เราได้กำหนดว่าเปลี่ยนเฉพาะที่ id เท่ากับ 3 เท่านั้น

ผลลัพท์หลังจากที่ใช้คำสั่ง REPLACE ที่แทนที่จาก "xxx" เป็น "yyy" และมีการกำหนดเงื่อนไขด้วยคำสั่ง WHERE
ข้อมูลที่ใช้คำสั่ง REPLACE เมื่อกำหนด WHERE

       การใช้คำสั่งของภาษา SQL เหมาะสมในการจัดการเปลี่ยนแปลงข้อมูลที่มีปริมาณหลายเรกคอร์ท ซึ่งเราไม่ต้องเสียเวลาเข้าไปแก้ไขข้อมูลที่ละเรกคอร์ด และสามารถลดข้อผิดพลาดจากการแก้ไขข้อมูลด้วยตัวเองได้มากขึ้น ในบทความนี้เราจะได้เห็นจากผลลัพท์ข้างต้นที่ใช้คำสั่ง REPLACE ในการแทนที่คำหรือข้อความตามที่เราต้องการเปลี่ยนนั้น คงเป็นประโยชน์ไม่น้อยสำหรับผู้ใช้งานที่ต้องการเปลี่ยนแปลงแก้ไขคำหรือข้อความที่มีปริมาณเรกคอร์ดที่มีหลายเรกคอร์ด ซึ่งการใช้งานนั้นก็ไม่ยากอย่างที่คิด อีกทั้งเรายังสามารถกำหนดเงื่อนไข ( คำสั่ง WHERE) ที่ต้องเปลี่ยนแปลงได้   

 

อ้างอิง

  • บทที่ 1 รู้จักกับ SQL, [ออนไลน์], เข้าถึง https://www.mindphp.com/%E0%B8%9A%E0%B8%97%E0%B9%80%E0%B8%A3%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B8%AD%E0%B8%AD%E0%B8%99%E0%B9%84%E0%B8%A5%E0%B8%99%E0%B9%8C/%E0%B8%AA%E0%B8%AD%E0%B8%99-sql/3672-%E0%B8%9A%E0%B8%97%E0%B8%97%E0%B8%B5%E0%B9%881-%E0%B8%A3%E0%B8%B9%E0%B9%89%E0%B8%88%E0%B8%B1%E0%B8%81%E0%B8%81%E0%B8%B1%E0%B8%9A-sql.html
  • SQL Server REPLACE() Function, [ออนไลน์], เข้าถึง https://www.w3schools.com/sql/func_sqlserver_replace.asp
  • SQL เบื้องต้น (Insert Select Update Delete Join) เพิ่ม ลบ แก้ไข ข้อมูล, [ออนไลน์], เข้าถึง https://www.mindphp.com/forums/viewtopic.php?f=72&t=51874
กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
spa near me
โดย JackStack ศ 19 เม.ย. 2024 1:54 pm บอร์ด Programming - PHP
0
2
ศ 19 เม.ย. 2024 1:54 pm โดย JackStack View Topic spa near me
แจ้งปัญหาโพสบทความลงในเว็บบอร์ดส่วนตัวไม่ได้
โดย internTk21 ศ 19 เม.ย. 2024 11:56 am บอร์ด MindPHP News & Feedback
1
2
ศ 19 เม.ย. 2024 12:15 pm โดย internTk21 View Topic แจ้งปัญหาโพสบทความลงในเว็บบอร์ดส่วนตัวไม่ได้
สอบถาม Google Structure ที่เหมาะกับคอร์สเรียนควรใช้แบบไหนดีค่ะ
โดย eange08 ศ 19 เม.ย. 2024 9:56 am บอร์ด Programming - PHP
1
7
ศ 19 เม.ย. 2024 10:28 am โดย mindphp View Topic สอบถาม Google Structure ที่เหมาะกับคอร์สเรียนควรใช้แบบไหนดีค่ะ
คำสั่งรวมไฟล์ และ บีบอัดในคำสั่งเดียว tar, zip
โดย mindphp พ 17 เม.ย. 2024 7:42 pm บอร์ด Linux - Web Server
0
36
พ 17 เม.ย. 2024 7:42 pm โดย mindphp View Topic คำสั่งรวมไฟล์ และ บีบอัดในคำสั่งเดียว  tar, zip
เช็คขนาดพื้นที่ฐานข้อมูล แต่ละก้อน แต่ละฐานข้อมูลว่าใช้พื้นที่ไปเท่าไหร่ ด้วย Comamnd Line
โดย mindphp จ 15 เม.ย. 2024 11:10 pm บอร์ด PostgreSQL
1
159
จ 15 เม.ย. 2024 11:14 pm โดย mindphp View Topic เช็คขนาดพื้นที่ฐานข้อมูล แต่ละก้อน แต่ละฐานข้อมูลว่าใช้พื้นที่ไปเท่าไหร่ ด้วย Comamnd Line
การติดตั้ง WSL เพื่อใช้งาน Linux Terminal บน Windows
โดย tsukasaz ศ 12 เม.ย. 2024 2:25 pm บอร์ด Share Knowledge
0
184
ศ 12 เม.ย. 2024 2:25 pm โดย tsukasaz View Topic การติดตั้ง WSL เพื่อใช้งาน Linux Terminal บน Windows
Super Сasual Dating - Real Women
โดย heroxbay ศ 12 เม.ย. 2024 8:55 am บอร์ด Microsoft Office Knowledge & line & Etc
0
136
ศ 12 เม.ย. 2024 8:55 am โดย heroxbay View Topic Super Сasual Dating - Real Women
Unsurpassed Сasual Dating - True Females
โดย pongsu1968 ศ 12 เม.ย. 2024 5:47 am บอร์ด Microsoft Office Knowledge & line & Etc
0
157
ศ 12 เม.ย. 2024 5:47 am โดย pongsu1968 View Topic Unsurpassed Сasual Dating - True Females