Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

หาผลรวมตัวเลขหลังตัดตัวอักษรนำหน้าใน MySQL ด้วย SUBSTRING และ SUM

บทความนี้สาธิตการคำนวณผลรวม (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 ความยาว len
  • SUBSTR() - Synonym ของ SUBSTRING
  • MID() - Synonym อีกตัว

ข้อควรระวัง: หากสตริงไม่ได้เริ่มต้นด้วยตัวอักษรเพียง 1 ตัว (เช่น 'AB123' หรือ '123') ต้องใช้ Logic ตัดที่ซับซ้อนกว่า (Regex, Locate First Digit, etc.)