单词结尾的数据库字符限制?

时间:2013-07-21 17:32:10

标签: sql database limit

好的,我知道我可以在获取时限制表字段的字符大小,但大多数时候SPLIT都在这个单词的中间:

SELECT id, title, LEFT(contents, 300) AS contents FROM posts

现在,是否有可能让SPLIT在单词后面(空格处)?

谢谢

2 个答案:

答案 0 :(得分:0)

如果您使用的是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;

其他数据库也有类似的功能。

答案 1 :(得分:0)

如果是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