目次
1. พื้นฐานการจัดการสตริงใน MySQL
ในการจัดการฐานข้อมูล การจัดการสตริงเป็นทักษะที่จำเป็นสำหรับการแปลงข้อมูลและการเพิ่มประสิทธิภาพผลลัพธ์ของคิวรี. MySQL มีฟังก์ชันที่สะดวกสำหรับการตัดและจัดการสตริง. ในบทความนี้ เราจะเน้นฟังก์ชันSUBSTRING
ที่สำคัญเป็นหลัก พร้อมแนะนำวิธีการจัดการสตริงอื่น ๆ และอธิบายการใช้งานในเชิงปฏิบัติ.2. การตัดสตริงพื้นฐานใน MySQL – ฟังก์ชัน SUBSTRING
ฟังก์ชันSUBSTRING
ของ MySQL เป็นหนึ่งในฟังก์ชันที่ใช้บ่อยที่สุดเมื่อกำหนดและดึงส่วนหนึ่งของสตริง ฟังก์ชัน SUBSTRING
ของ MySQL เป็นหนึ่งในฟังก์ชันที่ใช้บ่อยที่สุดเมื่อกำหนดและดึงส่วนหนึ่งของสตริงโครงสร้างพื้นฐานของฟังก์ชัน SUBSTRING
SUBSTRING(สตริง, ตำแหน่งเริ่มต้น, จำนวนอักขระ)
- สตริง: สตริงที่ต้องการตัดออก。
- ตำแหน่งเริ่มต้น
- จำนวนอักขระ: จำนวนอักขที่ต้องการดึง(หากละเว้น จะดึงตั้งแต่ตำแหน่งเริ่มต้นจนถึงจบ)。
ตัวอย่าง: การใช้งานพื้นฐาน
SELECT SUBSTRING('Hello World', 2, 5);
ในคิวรีนี้ สตริง “Hello World” จะถูกตัดตั้งแต่ตัวอักษรที่ 2 จำนวน 5 ตัวอักษร และได้ผลลัพธ์เป็น “ello “。ฟังก์ชัน SUBSTRING ที่ใช้ค่าลบ
โดยการระบุตำแหน่งเริ่มต้นเป็นค่าลบ สามารถนับจากท้ายสตริงและตัดออกได้。SELECT SUBSTRING('abcdefg', -3, 2);
คิวรีนี้จะคืนค่า “ef” ซึ่งเป็นอักขระที่ 3 และ 4 จากท้าย。3. การตัดสตริงด้วยฟังก์ชัน LEFT และ RIGHT
SUBSTRING
แทนฟังก์ชัน, LEFT
หรือ RIGHT
เพื่อดึงจำนวนอักขระที่ระบุจากต้นหรือท้ายของสตริงได้.ฟังก์ชัน LEFT
LEFT
ฟังก์ชันจะตัดสตริงจากด้านซ้ายตามจำนวนอักขระที่ระบุ.SELECT LEFT('abcdefg', 3);
ในคิวรีนี้จะได้ผลลัพธ์เป็น “abc”.ฟังก์ชัน RIGHT
ในทางกลับกันRIGHT
ฟังก์ชันจะดึงจำนวนอักขระจากด้านขวาของสตริง.SELECT RIGHT('abcdefg', 3);
คิวรีนี้จะคืนผลลัพธ์เป็น “efg” ฟังก์ชันเหล่านี้มีประโยชน์โดยเฉพาะเมื่อจำเป็นต้องตัดสตริงตามจำนวนอักขระที่กำหนดจากด้านซ้ายหรือขวา.4. การแยกสตริงด้วยฟังก์ชัน SUBSTRING_INDEX
SUBSTRING_INDEX
ฟังก์ชันใช้เพื่อแบ่งสตริงตามตัวอักษรคั่นที่กำหนดและดึงส่วนย่อยของสตริงที่ต้องการ ซึ่งมีประโยชน์โดยเฉพาะในกรณีของ CSV หรือฟิลด์ที่มีค่าหลายค่าเชื่อมต่อกันโครงสร้างพื้นฐานของฟังก์ชัน SUBSTRING_INDEX
SUBSTRING_INDEX(สตริง, อักขระคั่น, N)
- สตริง: สตริงที่เป็นเป้าหมายของการดำเนินการ.
- อักขระคั่น: อักขระที่ใช้เป็นเกณฑ์ในการแบ่งสตริง (เช่น: คอมม่า).
- N: จำนวนของการคั่นที่ต้องการดึง. ค่าเป็นบวกจะนับจากต้น, ค่าเป็นลบจะนับจากท้าย.
ตัวอย่าง: การใช้งาน
SELECT SUBSTRING_INDEX('apple,orange,banana', ',', 2);
ในคิวรีนี้ จะดึงสองส่วนแรก “apple,orange” จากสตริง “apple,orange,banana” ที่คั่นด้วยคอมม่า
5. การประยุกต์ใช้งานเชิงปฏิบัติ: การตัดสตริงในการดำเนินการฐานข้อมูล
การจัดการสตริงเป็นประโยชน์อย่างมากในการจัดการฐานข้อมูลจริง ๆ ที่นี่เราจะแนะนำตัวอย่างการประยุกต์ใช้งานบางส่วนดึงส่วนหนึ่งของชื่อสินค้า
คิวรีต่อไปนี้จะค้นหาข้อมูลที่ชื่อสินค้าจบด้วย ‘ขนาดใหญ่’。SELECT * FROM products WHERE SUBSTRING(name, -2, 2) = 'ขนาดใหญ่';
ด้วยวิธีนี้ คุณสามารถระบุส่วนท้ายของข้อมูลและดึงบันทึกที่ตรงกับเงื่อนไขที่กำหนดได้ตัดข้อมูลเชิงตัวเลขเพื่อคำนวณ
ตัวอย่างการตัดส่วนหนึ่งของฟิลด์ตัวเลขและใช้ในการคำนวณSELECT name, price, SUBSTRING(price, -2, 2) * 5 AS total FROM products;
ในคิวรีนี้ จะตัดสองหลักสุดท้ายของราคาสินค้าแล้วคูณด้วย 5 เพื่อแสดงค่า “total”。6. เคล็ดลับการเพิ่มประสิทธิภาพ
การจัดการสตริงนั้นสะดวก แต่ในฐานข้อมูลขนาดใหญ่อาจส่งผลต่อประสิทธิภาพได้ ต่อไปนี้คือเคล็ดลับบางประการเพื่อเพิ่มประสิทธิภาพใช้ประโยชน์จากดัชนี
เมื่อค้นหาส่วนหนึ่งของสตริง การตั้งค่าดัชนีที่เหมาะสมสามารถเพิ่มความเร็วของคิวรีได้อย่างมาก ตัวอย่างเช่น เมื่อผสานประโยคLIKE
กับดัชนี ควรใช้คิวรีที่ค้นหาจากจุดเริ่มต้นของรูปแบบ เช่น LIKE 'abc%'
จะเป็นตัวเลือกที่ดีที่สุด หากใช้การจับคู่แบบหลังท้าย เช่น LIKE '%abc'
ดัชนีจะไม่ถูกใช้ ทำให้ประสิทธิภาพลดลงการจัดการสตริงกับข้อมูลจำนวนมาก
หากต้องทำการจัดการสตริงบ่อยครั้งในตารางขนาดใหญ่ การพิจารณาทำการแปลงสตริงในระดับแอปพลิเคชันก็เป็นวิธีหนึ่ง หากการประมวลผลในฐานข้อมูลหนักเกินไป การกระจายการประมวลผลไปยังแอปพลิเคชันสามารถลดภาระได้7. สรุป
การจัดการสตริงใน MySQL เป็นเครื่องมือที่ทรงพลังสำหรับการสกัดข้อมูลและการสร้างรายงานSUBSTRING
、LEFT
、RIGHT
เป็นต้น การใช้ฟังก์ชันเหล่านี้อย่างมีประสิทธิภาพทำให้สามารถดึงข้อมูลที่ต้องการได้อย่างง่ายดาย นอกจากนี้ การปรับประสิทธิภาพให้ดีที่สุดต้องอาศัยการตั้งค่าอินเดกซ์ที่เหมาะสมและการออกแบบวิธีการประมวลผลที่ดี เมื่อคุณเชี่ยวชาญเทคนิคเหล่านี้ คุณจะสามารถยกระดับทักษะการจัดการสตริงของ MySQL ได้อีกระดับ ขั้นตอนต่อไป แนะนำให้เรียนรู้เกี่ยวกับการใช้ regular expression และเทคนิคการจัดการสตริงขั้นสูงอื่น ๆ