【问题标题】:Database character limit on the end of word?单词末尾的数据库字符限制?
【发布时间】:2013-07-20 10:39:40
【问题描述】:

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

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

现在,是否可以让 SPLIT 出现在单词之后(在空格处)?

谢谢

【问题讨论】:

标签: sql database limit


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-21
      • 2020-11-05
      • 2012-06-24
      • 2017-04-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多