War*_*ker 17 mysql sql substring
我想在一定长度上限制MYSQL中的字符串字段长度,但我不希望发生任何切断字.
当我做:
SELECT SUBSTRING('Business Analist met focus op wet- en regelgeving', 1, 28)
Run Code Online (Sandbox Code Playgroud)
我得到这个作为输出:
Business Analist met focus o
Run Code Online (Sandbox Code Playgroud)
但我想
Business Analist met focus
Run Code Online (Sandbox Code Playgroud)
如何强制限制28个字符,但是要防止切断单词?当然,在[插入所选择的编程语言]中很容易;-),但我想知道在MYSQL中是否可以在一个简单的语句中.
Jef*_*rod 11
拆分空间怎么样:
SELECT SUBSTRING_INDEX('Business Analist met focus op wet- en regelgeving',' ',4)
Run Code Online (Sandbox Code Playgroud)
将返回
Business Analist met focus
Run Code Online (Sandbox Code Playgroud)
And*_*y M 10
让我们@str
的字符串和@len
初始位置切入.然后必要的步骤可能是:
取最左边的@len
字符@str
.
反转子串.
找到反转子串中第一个空格的位置.
减去1
职位.但如果没有找到空间,请保持这个位置0
.
从中减去找到的位置@len
并调用它cutpos
.
取第一个(最左边)cutpos
字符@str
as str1
,取所有其他字符(从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
Run Code Online (Sandbox Code Playgroud)