MySQL用省略号截断文本?
您可以使用LENGTH()withCASE语句截断带有省略号的文本。如果您的长度大于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”。