好的,我知道我可以在获取时限制表字段的字符大小,但大多数时候 SPLIT 出现在单词的中间:
SELECT id, title, LEFT(contents, 300) AS contents FROM posts
现在,是否可以让 SPLIT 出现在单词之后(在空格处)?
谢谢
如果您使用的是 SQL Server,则可以执行以下操作:
SELECT id, title,
LEFT(contents,
(case when charindex(contents, ' ', 300) > 0
then charindex(contents, ' ', 300)
else 300
end)
) AS contents
FROM posts;
在 MySQL 中:
SELECT id, title,
LEFT(contents,
(case when locate(' ', contents, 300) > 0
then locate(' ', contents, 300)
else 300
end)
) AS contents
FROM posts;
其他数据库也有类似的功能。
如果是 Sql Server,你可以试试这个:
SELECT id, title,
CASE
WHEN CHARINDEX(' ', title,300) = 301 THEN LEFT(title, 300)
WHEN CHARINDEX(' ', title,300) > 301 then LEFT(title, CHARINDEX(' ', title, 300) - 1)
END AS Contents
FROM posts