Sử dụng SUBSTRING() kết hợp CHAR_LENGTH() để lấy chuỗi con bỏ qua N ký tự cuối.
Cú pháp
SELECT column_name,
SUBSTRING(column_name, 1, CHAR_LENGTH(column_name) - 2) AS trimmed
FROM table_name;
Giải thích:
CHAR_LENGTH(str)trả về số ký tự (khácLENGTH()trả về số byte).SUBSTRING(str, start, len)lấylenký tự từ vị trístart.- Vị trí bắt đầu từ 1.
Ví dụ minh họa
mysql> CREATE TABLE LastTwoCharacters (Words VARCHAR(200));
Query OK, 0 rows affected (0.71 sec)
mysql> INSERT INTO LastTwoCharacters VALUES ('Hellooo'), ('Worldsss'), ('Johnson');
Query OK, 3 rows affected
Cắt 2 ký tự cuối:
mysql> SELECT Words,
SUBSTRING(Words, 1, CHAR_LENGTH(Words) - 2) AS AfterStripLastTwoChar
FROM LastTwoCharacters;
Kết quả:
+----------+-----------------------+ | Words | AfterStripLastTwoChar | +----------+-----------------------+ | Hellooo | Hello | | Worldsss | Worlds | | Johnson | Johns | +----------+-----------------------+
Cách thay thế: LEFT()
SELECT LEFT(Words, CHAR_LENGTH(Words) - 2) AS trimmed FROM LastTwoCharacters;
LEFT(str, len) tương đương SUBSTRING(str, 1, len), ngắn gọn hơn.
Xử lý chuỗi quá ngắn
Nếu chuỗi có độ dài < 2, CHAR_LENGTH - 2 âm → trả về NULL.
-- An toàn hơn: SELECT CASE WHEN CHAR_LENGTH(Words) >= 2 THEN LEFT(Words, CHAR_LENGTH(Words) - 2) ELSE '' END AS trimmed FROM LastTwoCharacters;