2

我有一个带有描述字段的数据库。我希望能够只返回该字段的一部分(150 个字符),但是我不想在中间词中将它们切断。(就像...

任何想法如何实现?

目前我有:

SELECT  e.*, e.id as event_id, CONCAT(SUBSTRING(e.description,1, 100),'...') AS short_description, FROM events e

谢谢

4

2 回答 2

0

编写一个操作字符串的数据库函数,如果太长则将其切断并添加“...”。

从您的 SELECT 语句中调用函数(假设您调用函数 LIMIT_TEXT):

SELECT  e.*, e.id as event_id, LIMIT_TEXT(e.description, 100, '...') AS short_description, FROM events e
于 2013-08-15T07:30:07.067 回答
0

您可以使用这样的查询:

SELECT
  e.*, e.id as event_id,
  CASE WHEN SUBSTRING(e.description, 101, 1)=' '
            OR CHAR_LENGTH(e.description)<=100
  THEN
    TRIM(SUBSTRING(e.description, 1, 100))
  ELSE
    SUBSTRING(e.description, 1,
              100-LOCATE(' ', REVERSE(SUBSTRING(e.description, 1, 100))))
  END as short_description
FROM
  events e

在此处查看小提琴。

于 2013-08-15T07:30:32.577 回答