Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cắt bỏ 2 ký tự cuối của cột trong MySQL


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ác LENGTH() trả về số byte).
  • SUBSTRING(str, start, len) lấy len ký 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;