Bạn có thể cắt bớt văn bản bằng dấu chấm lửng bằng cách sử dụng LENGTH () với câu lệnh CASE. Nếu độ dài của bạn lớn hơn 7 thì hãy cắt ngắn văn bản và thêm một số số, nếu không hãy in số đó như cũ.
Để hiểu cú pháp trên, chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau:
mysql> tạo bảng TruncateText -> (-> Id int NOT NULL AUTO_INCREMENT, -> Number longtext, -> PRIMARY KEY (Id) ->); Truy vấn OK, 0 hàng bị ảnh hưởng (0,66 giây)
Chèn một số bản ghi trong bảng bằng lệnh chèn. Truy vấn như sau:
mysql> chèn vào các giá trị TruncateText (Number) ('64575868667687'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,11 giây) mysql> chèn vào các giá trị TruncateText (Number) ('7654332'); Truy vấn OK, 1 hàng bị ảnh hưởng ( 0,17 giây) mysql> chèn vào giá trị TruncateText (Số) ('25434656'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,19 giây) mysql> chèn vào giá trị TruncateText (Số) ('6457586'); Truy vấn OK, 1 hàng bị ảnh hưởng ( 0,17 giây) mysql> chèn vào giá trị TruncateText (Số) ('958567686868675757574'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,13 giây) mysql> chèn vào giá trị TruncateText (Số) ('374785868968787'); Truy vấn OK, 1 hàng bị ảnh hưởng ( 0,21 giây) mysql> chèn vào giá trị TruncateText (Số) ('58969678685858585858585858585'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,14 giây)
Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau:
mysql> select * từ TruncateText;
Sau đây là kết quả:
+ ---- + ------------------------------- + | Id | Số | + ---- + ------------------------------- + | 1 | 64575868667687 || 2 | 7654332 || 3 | 25434656 || 4 | 6457586 || 5 | 958567686868675757574 || 6 | 374785868968787 || 7 | 58969678685858585858585858585 | + ---- + ------------------------------- + 7 hàng trong bộ (0,00 giây)Trong kết quả đầu ra mẫu ở trên, chúng ta có một số số có độ dài lớn hơn 7. Nếu độ dài lớn hơn 7 thì chúng ta cần thêm một số sau chữ số 7. Nếu độ dài là 7 hoặc bằng 7 thì không cần thêm số.
Truy vấn như sau:
mysql> SELECT *, CASE WHEN LENGTH (Number)> 7 -> THEN CONCAT (SUBSTRING (Number, 1, 7), '99999999') -> ELSE Number END AS AddNumber -> FROM TruncateText;Sau đây là kết quả:
+ ---- + ------------------------------- + --------- -------- + | Id | Số | AddNumber | + ---- + --------------------------------- + ---------- ------- + | 1 | 64575868667687 | 645758699999999 || 2 | 7654332 | 7654332 || 3 | 25434656 | 254346599999999 || 4 | 6457586 | 6457586 || 5 | 958567686868675757574 | 958567699999999 || 6 | 374785868968787 | 374785899999999 || 7 | 58969678685858585858585858585 | 589696799999999 | + ---- + ------------------------------ + ---------- ------- + 7 hàng trong bộ (0,00 giây)Nhìn vào đầu ra mẫu ở trên. Nếu số lớn hơn 7, thì chúng tôi đã cắt bớt tất cả các giá trị của số đó và thêm một số '99999999' sau chữ số thứ 7.