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

Cắt ngắn văn bản với dấu ba chấm (ellipsis) trong MySQL

Có thể cắt ngắn văn bản với ellipsis dùng LENGTH() kết hợp CASE statement. Nếu độ dài > 7 thì cắt và thêm số, ngược lại giữ nguyên.

Tạo bảng:

mysql> create table TruncateText    -> (    -> Id int NOT NULL AUTO_INCREMENT,    -> Number longtext,    -> PRIMARY KEY(Id)    -> ); Query OK, 0 rows affected (0.66 sec)

Chèn dữ liệu:

mysql> insert into TruncateText(Number) values('64575868667687'); Query OK, 1 row affected (0.11 sec) mysql> insert into TruncateText(Number) values('7654332'); Query OK, 1 row affected (0.17 sec) mysql> insert into TruncateText(Number) values('25434656'); Query OK, 1 row affected (0.19 sec) mysql> insert into TruncateText(Number) values('6457586'); Query OK, 1 row affected (0.17 sec) mysql> insert into TruncateText(Number) values('958567686868675757574'); Query OK, 1 row affected (0.13 sec) mysql> insert into TruncateText(Number) values('374785868968787'); Query OK, 1 row affected (0.21 sec) mysql> insert into TruncateText(Number) values('58969678685858585858585858585'); Query OK, 1 row affected (0.14 sec)

Hiển thị dữ liệu:

mysql> select *from TruncateText;
+----+-------------------------------+ | Id | Number                        | +----+-------------------------------+ |  1 | 64575868667687                | |  2 | 7654332                       | |  3 | 25434656                      | |  4 | 6457586                       | |  5 | 958567686868675757574         | |  6 | 374785868968787               | |  7 | 58969678685858585858585858585 | +----+-------------------------------+ 7 rows in set (0.00 sec)

Truy vấn cắt ngắn độ dài > 7, thêm '99999999' sau ký tự thứ 7:

mysql> SELECT *, CASE WHEN LENGTH(Number) > 7 -> THEN CONCAT(SUBSTRING(Number, 1, 7), '99999999') -> ELSE Number END AS AddNumber -> FROM TruncateText;
+----+-------------------------------+-----------------+ | Id | Number | AddNumber | +----+-------------------------------+-----------------+ | 1 | 64575868667687 | 645758699999999 | | 2 | 7654332 | 7654332 | | 3 | 25434656 | 254346599999999 | | 4 | 6457586 | 6457586 | | 5 | 958567686868675757574 | 958567699999999 | | 6 | 374785868968787 | 374785899999999 | | 7 | 58969678685858585858585858585 | 589696799999999 | +----+-------------------------------+-----------------+ 7 rows in set (0.00 sec)