mysql – 字符串截短长度,但不能剔除单词允许

我想在一定长度限制MYSQL中的字符串字段长度,但是我不希望发生任何字符串.

当我做:

SELECT SUBSTRING('Business Analist met focus op wet- en regelgeving', 1, 28)

我得到这个作为输出:

Business Analist met focus o

但我想

Business Analist met focus

如何执行28个字符的限制,但是可以防止斩首?当然,在这里插入编程语言是很容易的;-),但是我想知道在MYSQL中是否有可能在一个简单的语句中.

最佳答案
让@str成为你的字符串和@len的初始位置.那么必要的步骤可以是:

拿走@str的最左边@len个字符.
>反转子串.
>查找反向子串中第一个空格的位置.
>从位置减去1.但是如果没有找到空格,就让位置保持为0.
>从@len中减去找到的位置,称之为cutpos.
>以@str作为str1的第一(最左边)cutpos字符,将所有其他字符(从cutpos 1开始)作为str2.

SELECT
  LEFT(str, cutpos) AS str1,
  SUBSTRING(str, cutpos + 1) AS str2
FROM (
  SELECT
    @str AS str,
    @len - IFNULL(NULLIF(LOCATE(' ', REVERSE(LEFT(@str, @len))), 0) - 1, 0) AS cutpos
) s

转载注明原文:mysql – 字符串截短长度,但不能剔除单词允许 - 代码日志