如果我有这样的表:
--------------------------
| id | content |
--------------------------
| 1 | text 1500 chars |
--------------------------
| 2 | text 300 chars |
--------------------------
| 3 | text 501 chars |
--------------------------
| 4 | text 500 chars |
--------------------------
是否可以创建一个查询,该查询最多可选择500个字符并在点位置处切割刺痛。
实施例
Lorem Ipsum简直就是...... PageMaker(这里有500个字符)Lorem Ipsum。 < - 削减。位置。
这可能吗?如果没有,我会尝试创建PHP解决方案。目前我正在研究一些MYSQL函数来完成这项工作。如果我能在查询中实现这一点,那就太好了。
答案 0 :(得分:6)
也许这样的事情可行:
SELECT
id,
CASE
WHEN len <= 500 THEN content
ELSE CASE
WHEN idx > 0 THEN SUBSTRING(content, 1, idx)
ELSE ''
END
END AS content
FROM (
SELECT
id,
content,
LOCATE('.', content, 500) AS idx,
LENGTH(content) AS len
FROM data
) AS data
你可以在这里看到它:http://sqlfiddle.com/#!2/ac4d3/2(我使用长度为10的字符串,原因很明显;)