ฟังก์ชั่นต่อข้อความของ MySQL

เวลาที่เราเขียนโปรแกรมเพื่อจะแก้ปัญหาอะไรสักอย่าง เรามักจะนึกถึงแต่่ฟังก์ชั่นของ PHP จนบางครั้งเราลืมไปว่า MySQL นั้นไม่ได้มีแต่คำสั่ง select,update,delete ยิ่งถ้าเรารู้จักคำสั่งของ MySQL มากเท่าไร จะยิ่งทำให้เราทำงานบางอย่างง่ายและสะดวกขึ้น หลายท่านเวลาจะกระทำการบางอย่างกับฐานข้อมูล เลือกใช้วิธีเขียน PHP ดึงข้อมูลออกจากฐานข้อมูล ใช้ฟังก์ชั่น PHP จัดการกับข้อมูลแล้วอัปเดตกลับเข้าไปในฐานข้อมูลอีกที (ผมเองก็เป็นคนหนึ่งล่ะที่ทำแบบนี้) วันนี้ผมจะแนะนำฟังก์ชั่นของ MySQL ตัวหนึ่งคือ CONCAT ที่มาจากคำว่า Concatenate แปลว่า ต่อกัน การทำงานก็เหมือนคำแปลละครับ คือเอาสตริงมาต่อกันเป็นคำใหม่ สมมติว่า ในฐานข้อมูลผมมีข้อมูลดังนี้ และผมต้องการจะให้เพิ่มคำว่า “เขต” เข้าไปใน amphur_name ผมสามารถเขียนคำสั่ง SELECT CONCAT(’เขต’,amphur_name) AS amphur_name FROM amphur ผลลัพธ์ที่ได้ ถ้าจะอัปเดตลงไปในฐานข้อมูลเลยก็เขียนอย่างนี้ UPDATE amphur SET amphur_name=CONCAT(’เขต’,amphur_name) ถ้าจะอัปเดตลงไปในฐานข้อมูลและเอาเฉพาะอำเภอที่อยู่ในเขตกรุงเทพ UPDATE amphur SET amphur_name=CONCAT(’เขต’,amphur_name) WHERE province_id=1 […]

เวลาที่เราเขียนโปรแกรมเพื่อจะแก้ปัญหาอะไรสักอย่าง เรามักจะนึกถึงแต่่ฟังก์ชั่นของ PHP จนบางครั้งเราลืมไปว่า MySQL นั้นไม่ได้มีแต่คำสั่ง select,update,delete

ยิ่งถ้าเรารู้จักคำสั่งของ MySQL มากเท่าไร จะยิ่งทำให้เราทำงานบางอย่างง่ายและสะดวกขึ้น หลายท่านเวลาจะกระทำการบางอย่างกับฐานข้อมูล เลือกใช้วิธีเขียน PHP ดึงข้อมูลออกจากฐานข้อมูล ใช้ฟังก์ชั่น PHP จัดการกับข้อมูลแล้วอัปเดตกลับเข้าไปในฐานข้อมูลอีกที (ผมเองก็เป็นคนหนึ่งล่ะที่ทำแบบนี้)

วันนี้ผมจะแนะนำฟังก์ชั่นของ MySQL ตัวหนึ่งคือ CONCAT ที่มาจากคำว่า Concatenate แปลว่า ต่อกัน การทำงานก็เหมือนคำแปลละครับ คือเอาสตริงมาต่อกันเป็นคำใหม่ สมมติว่า ในฐานข้อมูลผมมีข้อมูลดังนี้

และผมต้องการจะให้เพิ่มคำว่า “เขต” เข้าไปใน amphur_name ผมสามารถเขียนคำสั่ง

SELECT CONCAT('เขต',amphur_name) AS amphur_name FROM amphur

ผลลัพธ์ที่ได้

ถ้าจะอัปเดตลงไปในฐานข้อมูลเลยก็เขียนอย่างนี้

UPDATE amphur SET amphur_name=CONCAT('เขต',amphur_name)

ถ้าจะอัปเดตลงไปในฐานข้อมูลและเอาเฉพาะอำเภอที่อยู่ในเขตกรุงเทพ

UPDATE amphur SET amphur_name=CONCAT('เขต',amphur_name) WHERE province_id=1

สำหรับไวยากรณ์ของคำสั่งนี้ ง่ายๆ

CONCAT(str1,str2,...)

อยากจะต่อสักเท่าไรก็ใส่พารามิเตอร์เข้าไป

ลองอ่านเพิ่มเติม
http://www.thaicreate.com/tutorial/sql-concat.html