การใช้ฟังก์ชัน SUBSTR() / SUBSTRING()
ใน MySQL ฟังก์ชัน SUBSTR() (หรือ SUBSTRING()) ใช้สำหรับดึงส่วนของสตริงออกมา รูปแบบคือ:
SUBSTR(string, start_position[, length])
-- หรือ
SUBSTRING(string FROM start_position [FOR length])
พารามิเตอร์
- start_position: เริ่มที่ตำแหน่งที่ 1 (ไม่ใช่ 0), ใช้ค่าลบเพื่อนับจากท้าย
- length: จำนวนตัวอักษรที่ต้องการ (ไม่ระบุ = จนจบสตริง)
ตัวอย่างการใช้งานจริง
1. สร้างตาราง
CREATE TABLE SubStringDemo (
UserId VARCHAR(200)
);
2. เพิ่มข้อมูล (รหัส + หมายเลข)
INSERT INTO SubStringDemo VALUES
('Bob10015'),
('Smith0015'),
('Carol20010');
3. ดึงตัวอักษรตั้งแต่ตำแหน่งที่ 5 จนจบ
SELECT SUBSTR(UserId, 5) AS ExtractSubstring
FROM SubStringDemo;
ผลลัพธ์
| UserId (ต้นฉบับ) | ExtractSubstring (ตำแหน่ง 5+) |
| Bob10015 | 0015 |
| Smith0015 | h0015 |
| Carol20010 | l20010 |
ตัวอย่างเพิ่มเติม
| คำสั่ง | อธิบาย | ผลลัพธ์ (จาก 'Bob10015') |
SUBSTR(UserId, 1, 3) | 3 ตัวแรก | Bob |
SUBSTR(UserId, -4) | 4 ตัวท้าย | 0015 |
SUBSTR(UserId, -6, 2) | 2 ตัว นับจากตัวที่ 6 จากท้าย | 10 |
SUBSTRING(UserId FROM 4 FOR 3) | รูปแบบ SQL Standard | 100 |
การใช้งานใน UPDATE
-- อัปเดตคอลัมน์โดยตัดเอาเฉพาะส่วนที่ต้องการ
UPDATE SubStringDemo
SET UserId = SUBSTR(UserId, 1, 3); -- เก็บแค่ 'Bob', 'Smi', 'Car'
ฟังก์ชันเกี่ยวข้อง
LEFT(str, len) = SUBSTR(str, 1, len)
RIGHT(str, len) = SUBSTR(str, -len)
MID(str, pos, len) = Alias ของ SUBSTR()