Cú pháp
Sử dụng SUBSTR() (hoặc SUBSTRING()) với vị trí bắt đầu từ 2:
UPDATE ten_bang SET ten_cot = SUBSTR(ten_cot, 2);
Ví dụ: Xóa dấu phẩy đầu chuỗi
1. Tạo bảng
mysql> CREATE TABLE CutStringDemo ( -> Value VARCHAR(100) -> ); Query OK, 0 rows affected (0.66 sec)
2. Chèn dữ liệu (có dấu phẩy đầu)
mysql> INSERT INTO CutStringDemo VALUES(',12,3456');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO CutStringDemo VALUES(',23,9867');
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO CutStringDemo VALUES(',20,3212');
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO CutStringDemo VALUES(',23456,1234');
Query OK, 1 row affected (0.14 sec)
3. Dữ liệu ban đầu
mysql> SELECT * FROM CutStringDemo;
+-------------+ | Value | +-------------+ | ,12,3456 | | ,23,9867 | | ,20,3212 | | ,23456,1234 | +-------------+ 4 rows in set (0.00 sec)
4. Xóa ký tự đầu tiên
mysql> UPDATE CutStringDemo SET Value = SUBSTR(Value, 2); Query OK, 4 rows affected (0.20 sec) Rows matched: 4 Changed: 4 Warnings: 0
5. Kết quả
mysql> SELECT * FROM CutStringDemo;
+------------+ | Value | +------------+ | 12,3456 | | 23,9867 | | 20,3212 | | 23456,1234 | +------------+ 4 rows in set (0.00 sec)
Các biến thể hữu ích
Xóa N ký tự đầu
UPDATE ten_bang SET ten_cot = SUBSTR(ten_cot, N+1);
Chỉ xóa nếu ký tự đầu là ký tự cụ thể
UPDATE ten_bang SET ten_cot = SUBSTR(ten_cot, 2) WHERE LEFT(ten_cot, 1) = ',';
Xóa ký tự cuối (dùng RIGHT/LENGTH)
UPDATE ten_bang SET ten_cot = LEFT(ten_cot, LENGTH(ten_cot) - 1) WHERE RIGHT(ten_cot, 1) = ',';
Hàm liên quan
| Hàm | Mô tả | Ví dụ |
|---|---|---|
| SUBSTR(str, pos) | Lấy từ vị trí pos đến hết | SUBSTR('abc', 2) → 'bc' |
| SUBSTR(str, pos, len) | Lấy len ký tự từ pos | SUBSTR('abcde', 2, 3) → 'bcd' |
| LEFT(str, len) | Lấy len ký tự đầu | LEFT('abc', 2) → 'ab' |
| RIGHT(str, len) | Lấy len ký tự cuối | RIGHT('abc', 2) → 'bc' |
| TRIM(str) | Xóa khoảng trắng 2 đầu | TRIM(' abc ') → 'abc' |
Lưu ý
- Vị trí trong MySQL bắt đầu từ 1 (không phải 0)
- SUBSTR = SUBSTRING (đồng nghĩa)
- Luôn backup hoặc test trước khi UPDATE hàng loạt