MySQL用省略号截断文本?

您可以使用LENGTH()with CASE 语句截断带有省略号的文本。如果您的长度大于 7,则截断文本并添加一些数字,否则按原样打印数字。

为了理解上述语法,让我们创建一个表。创建表的查询如下:

mysql> create table TruncateText

   -> (

   -> Id int NOT NULL AUTO_INCREMENT,

   -> Number longtext,

   -> PRIMARY KEY(Id)

   -> );

使用插入命令在表中插入一些记录。查询如下:

mysql> insert into TruncateText(Number) values('64575868667687');

mysql> insert into TruncateText(Number) values('7654332');

mysql> insert into TruncateText(Number) values('25434656');

mysql> insert into TruncateText(Number) values('6457586');

mysql> insert into TruncateText(Number) values('958567686868675757574');

mysql> insert into TruncateText(Number) values('374785868968787');

mysql> insert into TruncateText(Number) values('58969678685858585858585858585');

使用 select 语句显示表中的所有记录。查询如下:

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)

在上面的示例输出中,我们有一些长度大于 7 的数字。如果长度大于 7,那么我们需要在第 7 位后附加一个数字。如果长度为 7 或等于 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)

查看上面的示例输出。如果数字大于 7,那么我们已经截断了数字中的所有值,并在第 7 位数字后添加了一个数字“99999999”。

以上是 MySQL用省略号截断文本? 的全部内容, 来源链接: utcz.com/z/350510.html

回到顶部