การตัดสตริงเก็บเฉพาะ N ตัวแรกด้วย SUBSTRING() และ UPDATE
ใช้ SUBSTRING(str, start, length) หรือ SUBSTR() เพื่อดึงส่วนของสตริง แล้ว UPDATE กลับเข้าไปในคอลัมน์เดิม
Syntax
UPDATE table_name SET column_name = SUBSTRING(column_name, 1, 2);
ตัวอย่าง: เก็บแค่ 2 ตัวอักษรแรกของชื่อวิชา
สร้างตารางและเพิ่มข้อมูล:
mysql> CREATE TABLE DemoTable743 (SubjectName VARCHAR(100));
Query OK, 0 rows affected (0.54 sec)
mysql> INSERT INTO DemoTable743 VALUES
('MySQL'), ('Java'), ('MongoDB'), ('Python'), ('Data Structure'), ('Algorithm');
Query OK, 6 rows affected
ข้อมูลต้นฉบับ:
mysql> SELECT * FROM DemoTable743;
+----------------+ | SubjectName | +----------------+ | MySQL | | Java | | MongoDB | | Python | | Data Structure | | Algorithm | +----------------+ 6 rows in set (0.00 sec)
อัปเดตเก็บแค่ 2 ตัวแรก:
mysql> UPDATE DemoTable743 SET SubjectName = SUBSTRING(SubjectName, 1, 2); Query OK, 6 rows affected (0.12 sec)
ผลลัพธ์:
mysql> SELECT * FROM DemoTable743;
+-------------+ | SubjectName | +-------------+ | My | | Ja | | Mo | | Py | | Da | | Al | +-------------+ 6 rows in set (0.00 sec)
ฟังก์ชันตัดสตริงใน MySQL
| ฟังก์ชัน | Syntax | คำอธิบาย |
|---|---|---|
| SUBSTRING / SUBSTR | SUBSTRING(str, pos, len) | ดึงจากตำแหน่ง pos ความยาว len (1-based) |
| LEFT | LEFT(str, len) | ดึง len ตัวจากซ้าย |
| RIGHT | RIGHT(str, len) | ดึง len ตัวจากขวา |
| MID | MID(str, pos, len) | Alias ของ SUBSTRING |
| SUBSTRING_INDEX | SUBSTRING_INDEX(str, delim, count) | ดึงก่อน/หลัง Delimiter ครั้งที่ count |