บทความนี้สาธิตการคำนวณผลรวม (SUM) ของตัวเลขที่อยู่หลังตัวอักษรตัวแรกในสตริง (เช่น 'J230' → 230) โดยใช้ SUBSTRING() ตัดตัวแรกออก แล้ว SUM() รวมค่า
สร้างตารางและข้อมูลราคาแบบมี Prefix
mysql> CREATE TABLE DemoTable761 (Price VARCHAR(100));
Query OK, 0 rows affected (0.62 sec)
mysql> INSERT INTO DemoTable761 VALUES('J230'), ('A130'), ('C13'), ('D456'), ('B6');
คิวรีหาผลรวมหลังตัดตัวอักษรตัวแรก
mysql> SELECT SUM(SUBSTRING(Price, 2)) FROM DemoTable761;
ผลลัพธ์ (230 + 130 + 13 + 456 + 6 = 835)
+-------------------------+
| sum(substring(Price,2)) |
+-------------------------+
| 835 |
+-------------------------+
คำอธิบาย:
SUBSTRING(str, pos)- ดึงสตริงย่อยตั้งแต่ตำแหน่ง pos (1-based) จนจบSUBSTRING(Price, 2)- ตัดตัวอักษรตัวแรก (Prefix) ออก เหลือตัวเลข- MySQL แปลงสตริงตัวเลขเป็นตัวเลขอัตโนมัติตอนทำ SUM (Implicit Cast)
- รวม: 230 + 130 + 13 + 456 + 6 = 835
รูปแบบ SUBSTRING อื่นๆ:
SUBSTRING(str, pos, len)- ตัดตั้งแต่ pos ความยาว lenSUBSTR()- Synonym ของ SUBSTRINGMID()- Synonym อีกตัว
ข้อควรระวัง: หากสตริงไม่ได้เริ่มต้นด้วยตัวอักษรเพียง 1 ตัว (เช่น 'AB123' หรือ '123') ต้องใช้ Logic ตัดที่ซับซ้อนกว่า (Regex, Locate First Digit, etc.)