当前位置: 首页 > 面试题库 >

字符串按长度截短,但不允许切碎单词

杜嘉慕
2023-03-14
问题内容

我想将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在初始位置进行切割。然后,必要的步骤可能是:

  1. 取的最左边@len字符@str

  2. 反转子字符串。

  3. 在反向子字符串中找到第一个空格的位置。

  4. 1从该位置减去。但是,如果找不到空间,请保留该位置0

  5. 从中减去找到的位置@len并调用它cutpos

  6. 以as的第一个(最左边)cutpos字符@str为例str1,将所有其他字符(从开始cutpos+1)为as 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




 类似资料:
  • 问题内容: 我在这里的研究中得到了不同的答案。 有人可以验证Redis服务器只能存储任何数值的表示吗? 例如,如果我在lpush中使用具有双重类型的Java客户端(Jedis),在发送给Redis之前是否需要将其转换为等效于字符串类型的内容? 还是有一种方法可以发送诸如double之类的实际数字类型?如果是这样,是否有任何示例代码说明了如何实现此目的? 谢谢 问题答案: Redis将所有内容存储在

  • 使用javascript,我想将任意长度的字符串拆分为最多80个字符的段。需要注意的是,我不想拆分单词。例如,我目前正在使用下面列出的方法在JavaScript中将大字符串拆分为n大小的块 问题是,一个从第76个字符开始到第84个字符结束的单词将被分成两半。是否有一个光滑的正则表达式或代码来防止这种情况? 为了澄清这一点,我能够编写一个小函数来实现这一点,我只是想知道是否有一种干净、简洁的方法。

  • 问题内容: 有没有办法在不知道字符串长度的情况下,将一个字符长的字符串切成4个字符串,每个字符长? 例如: 问题答案:

  • 问题内容: 我正在通过NEST c#使用ElasticSearch。我有很多关于人的信息 我希望能够按lastName以及长度的顺序对项目列表进行过滤和排序,因此名称中只有5个字符的人会出现在结果集的开头,然后是10个字符的人。 所以我想用一些伪代码做类似的事情 我是ElasticSearch的新手,所以任何示例都将非常有帮助。 问题答案: 您可以使用基于脚本的排序进行排序。 作为一个玩具示例,我

  • 问题内容: 如何在Python中将字符串截断为75个字符? 这是用JavaScript完成的方式: 问题答案:

  • 本文向大家介绍go语言按显示长度截取字符串的方法,包括了go语言按显示长度截取字符串的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了go语言按显示长度截取字符串的方法。分享给大家供大家参考。具体分析如下: 根据显示长度截取字符串,之前php用的utf8编码,10个英文和10个汉字的显示长度差距太大,按字节截取的话又会出错出现截取半个汉字的情况,所以写了这两个函数. 这两天在折腾gol