MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

Cách cắt ngắn văn bản bằng dấu chấm lửng trong MariaDB

Đôi khi bạn có thể thấy rằng lượng văn bản trả về trong một cột cơ sở dữ liệu quá dài. Bạn có thể chỉ muốn trả lại một đoạn ngắn của văn bản đó, theo sau là dấu ba chấm hoặc dấu ba chấm.

May mắn thay, điều này tương đối dễ thực hiện trong MariaDB.

Ba thời kỳ

Dưới đây là ví dụ về việc thêm ba dấu chấm (thay vì ký tự dấu chấm lửng) vào một cột bất cứ khi nào số ký tự trong cột đó vượt quá một độ dài nhất định:

SELECT 
    IF(CHAR_LENGTH(ProductDescription) > 32, 
        CONCAT(LEFT(ProductDescription, 32),"..."), 
        ProductDescription) AS "Short Desc",
    ProductDescription AS "Full Desc"
FROM Products;

Kết quả:

+-------------------------------------+-----------------------------------------+
| Short Desc                          | Full Desc                               |
+-------------------------------------+-----------------------------------------+
| Purple. Includes left handed car... | Purple. Includes left handed carry box. |
| Blue. Includes right handed carr... | Blue. Includes right handed carry box.  |
| Approximate 45 minute waiting pe... | Approximate 45 minute waiting period.   |
| Approximate 30 minute waiting pe... | Approximate 30 minute waiting period.   |
| Wooden handle. Free wine glasses... | Wooden handle. Free wine glasses.       |
| Orange. Includes spare fingers.     | Orange. Includes spare fingers.         |
| Tied with vines. Very chewable.     | Tied with vines. Very chewable.         |
| Brown ceramic with solid handle.    | Brown ceramic with solid handle.        |
+-------------------------------------+-----------------------------------------+

Trong trường hợp này, chúng tôi sử dụng CHAR_LENGTH() hàm bên trong IF() chức năng để xác định xem chuỗi có đủ dài để đảm bảo rút ngắn nó hay không. Sau đó, chúng tôi sử dụng LEFT() hàm bên trong CONCAT() chức năng thêm một vài dấu chấm vào mô tả ngắn.

Sử dụng ký tự dấu chấm lửng thực tế

Và đây một lần nữa, nhưng với một ký tự dấu chấm lửng thực sự thay vì ba dấu chấm:

SELECT 
    IF(CHAR_LENGTH(ProductDescription) > 32, 
        CONCAT(LEFT(ProductDescription, 32),"…"), 
        ProductDescription) AS "Short Desc",
    ProductDescription AS "Full Desc"
FROM Products;

Kết quả:

+-------------------------------------+-----------------------------------------+
| Short Desc                          | Full Desc                               |
+-------------------------------------+-----------------------------------------+
| Purple. Includes left handed car…   | Purple. Includes left handed carry box. |
| Blue. Includes right handed carr…   | Blue. Includes right handed carry box.  |
| Approximate 45 minute waiting pe…   | Approximate 45 minute waiting period.   |
| Approximate 30 minute waiting pe…   | Approximate 30 minute waiting period.   |
| Wooden handle. Free wine glasses…   | Wooden handle. Free wine glasses.       |
| Orange. Includes spare fingers.     | Orange. Includes spare fingers.         |
| Tied with vines. Very chewable.     | Tied with vines. Very chewable.         |
| Brown ceramic with solid handle.    | Brown ceramic with solid handle.        |
+-------------------------------------+-----------------------------------------+

Dấu chấm lửng sử dụng ít không gian hơn. Điều này là do nó là một ký tự duy nhất, trái ngược với dấu ba chấm (là ba ký tự riêng biệt).

Cắt bớt TẤT CẢ các hàng, bất kể độ dài

Nếu bạn cần cắt bớt tất cả các hàng, bất kể độ dài của chúng là bao nhiêu, thì bạn không cần bao gồm IF() chức năng.

Trong trường hợp này, mã có thể được rút ngắn thành như sau:

SELECT 
    CONCAT(LEFT(ProductDescription, 15), '...') AS "Short Desc",
    ProductDescription AS "Full Desc"
FROM Products;

Kết quả:

+--------------------+-----------------------------------------+
| Short Desc         | Full Desc                               |
+--------------------+-----------------------------------------+
| Purple. Include... | Purple. Includes left handed carry box. |
| Blue. Includes ... | Blue. Includes right handed carry box.  |
| Approximate 45 ... | Approximate 45 minute waiting period.   |
| Approximate 30 ... | Approximate 30 minute waiting period.   |
| Wooden handle. ... | Wooden handle. Free wine glasses.       |
| Orange. Include... | Orange. Includes spare fingers.         |
| Tied with vines... | Tied with vines. Very chewable.         |
| Brown ceramic w... | Brown ceramic with solid handle.        |
+--------------------+-----------------------------------------+

Bỏ qua Dấu chấm lửng

Và nếu bạn thậm chí không cần dấu chấm lửng / ba dấu chấm, thì bạn thậm chí có thể rút ngắn nó hơn nữa, thành một cái gì đó như sau:

SELECT 
    LEFT(ProductDescription, 15) AS "Short Desc",
    ProductDescription AS "Full Desc"
FROM Products;

Kết quả:

+-----------------+-----------------------------------------+
| Short Desc      | Full Desc                               |
+-----------------+-----------------------------------------+
| Purple. Include | Purple. Includes left handed carry box. |
| Blue. Includes  | Blue. Includes right handed carry box.  |
| Approximate 45  | Approximate 45 minute waiting period.   |
| Approximate 30  | Approximate 30 minute waiting period.   |
| Wooden handle.  | Wooden handle. Free wine glasses.       |
| Orange. Include | Orange. Includes spare fingers.         |
| Tied with vines | Tied with vines. Very chewable.         |
| Brown ceramic w | Brown ceramic with solid handle.        |
+-----------------+-----------------------------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng mycli và Học MariaDB / MySQL một cách thoải mái trong một thiết bị đầu cuối!

  2. Cách TO_BASE64 () hoạt động trong MariaDB

  3. Người dùng mới và quản lý LDAP trong ClusterControl 1.8.2

  4. Cách định dạng số trong MariaDB

  5. Mã hóa MariaDB đầy đủ khi nghỉ ngơi và đang chuyển để bảo vệ dữ liệu tối đa - Phần một