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

วิธีแยกตัวเลขผลลัพธ์ Query ใน MySQL ด้วย CONCAT

การแยกตัวเลขแรกออกจากตัวเลขที่เหลือด้วย LEFT, RIGHT, CONCAT

ใช้ฟังก์ชันสตริง LEFT(), RIGHT(), LENGTH() ร่วมกับ CONCAT() เพื่อแยกและจัดรูปแบบตัวเลข เช่น แยกหลักแรกออกมาแสดงแยก

ตัวอย่างสร้างตารางและข้อมูล

CREATE TABLE DemoTable (
    StudentId INT
);

INSERT INTO DemoTable VALUES (2222), (5555), (4567), (8905);

ข้อมูลในตาราง

+-----------+
| StudentId |
+-----------+
| 2222      |
| 5555      |
| 4567      |
| 8905      |
+-----------+

คำสั่งแยกหลักแรกและส่วนที่เหลือ คั่นด้วย /

SELECT CONCAT(
    LEFT(StudentId, 1), 
    '/', 
    RIGHT(StudentId, LENGTH(StudentId) - 1)
) AS splitNumericalValue
FROM DemoTable;

ผลลัพธ์

+---------------------+
| splitNumericalValue |
+---------------------+
| 2/222               |
| 5/555               |
| 4/567               |
| 8/905               |
+---------------------+

คำอธิบาย:

  • LEFT(StudentId, 1) ดึงตัวอักษร 1 ตัวจากซ้าย (หลักแรก)
  • LENGTH(StudentId) - 1 คำนวณความยาวส่วนที่เหลือ
  • RIGHT(StudentId, ...) ดึงตัวอักษรจากขวาตามความยาวที่คำนวณได้
  • CONCAT(...) รวมสตริงทั้งสามส่วนด้วย '/' คั่น

⚠ ข้อควรระวัง: คอลัมน์ INT จะถูกแปลงเป็นสตริงอัตโนมัติ (Implicit Cast) ตอนใช้ฟังก์ชันสตริง หากเป็นค่าลบ จะมีเครื่องหมาย - รวมอยู่ในความยาวด้วย

ประยุกต์ใช้: แสดงรหัสสินค้า/บัตรประชาชน/เบอร์โทรในรูปแบบที่อ่านง่าย เช่น CONCAT(SUBSTRING(phone,1,3), '-', SUBSTRING(phone,4,3), '-', SUBSTRING(phone,7))