วิธีตัดสตริงใน MySQL | ตัวอย่างการใช้ SUBSTRING, LEFT, RIGHT

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 เป็นเครื่องมือที่ทรงพลังสำหรับการสกัดข้อมูลและการสร้างรายงาน SUBSTRINGLEFTRIGHT เป็นต้น การใช้ฟังก์ชันเหล่านี้อย่างมีประสิทธิภาพทำให้สามารถดึงข้อมูลที่ต้องการได้อย่างง่ายดาย นอกจากนี้ การปรับประสิทธิภาพให้ดีที่สุดต้องอาศัยการตั้งค่าอินเดกซ์ที่เหมาะสมและการออกแบบวิธีการประมวลผลที่ดี เมื่อคุณเชี่ยวชาญเทคนิคเหล่านี้ คุณจะสามารถยกระดับทักษะการจัดการสตริงของ MySQL ได้อีกระดับ ขั้นตอนต่อไป แนะนำให้เรียนรู้เกี่ยวกับการใช้ regular expression และเทคนิคการจัดการสตริงขั้นสูงอื่น ๆ