我有一个带有描述字段的数据库。我希望能够只返回该字段的一部分(150 个字符),但是我不想在中间词中将它们切断。(就像...
任何想法如何实现?
目前我有:
SELECT e.*, e.id as event_id, CONCAT(SUBSTRING(e.description,1, 100),'...') AS short_description, FROM events e
谢谢
我有一个带有描述字段的数据库。我希望能够只返回该字段的一部分(150 个字符),但是我不想在中间词中将它们切断。(就像...
任何想法如何实现?
目前我有:
SELECT e.*, e.id as event_id, CONCAT(SUBSTRING(e.description,1, 100),'...') AS short_description, FROM events e
谢谢
编写一个操作字符串的数据库函数,如果太长则将其切断并添加“...”。
从您的 SELECT 语句中调用函数(假设您调用函数 LIMIT_TEXT):
SELECT e.*, e.id as event_id, LIMIT_TEXT(e.description, 100, '...') AS short_description, FROM events e
您可以使用这样的查询:
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
请在此处查看小提琴。