【问题标题】:Get string between two characters MYSQL获取两个字符之间的字符串MYSQL
【发布时间】:2018-11-16 22:05:31
【问题描述】:

如何获取句号最后一次出现之前的字符串,然后是第一次出现的字符串之前的空格? MYSQL

我无法解释,但这里有一个视觉帮助。非常感谢。

【问题讨论】:

    标签: php mysql select


    【解决方案1】:

    使用 Sambhaji 的答案我制定了这个,它适用于所有实例(上面的示例)

    SELECT 
        (CASE
            WHEN LENGTH(NAME) - LENGTH(REPLACE(NAME, '.', '')) = 1
                THEN CONCAT( SUBSTRING_INDEX(SUBSTRING_INDEX(NAME,'.',1),' ',- 1),'. ')
            WHEN LENGTH(NAME) - LENGTH(REPLACE(NAME, '.', '')) = 2 
                THEN CONCAT( SUBSTRING_INDEX(SUBSTRING_INDEX(NAME,'.',1),' ',- 1),'. ', SUBSTRING_INDEX(SUBSTRING_INDEX(NAME,'.', 2),' ', -1), '.')
            ELSE NULL
        END) NAME
    

    【讨论】:

      【解决方案2】:

      你可以使用MYSQLs函数:

      SUBSTRING_INDEX(str, delim, count);
      

      参考:https://www.w3resource.com/mysql/string-functions/mysql-substring_index-function.php

      喜欢:

      SELECT (SUBSTRING_INDEX('Lennon, John W.','John',2),' ',-1);
      

      它会给你输出W.

      【讨论】:

      • 这仅适用于第一个示例,但这给了我一个想法。我会用这个尝试一些东西。非常感谢。
      【解决方案3】:

      您可以在sql语句中使用“喜欢”条件

      【讨论】:

      • 您将如何使用 LIKE 解决 OP 的问题?你真的应该展示一个例子,或者它应该写成评论而不是答案。此外,它似乎更像是正则表达式的工作,而不是直接的字符串比较。
      猜你喜欢
      • 2012-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-10
      相关资源
      最近更新 更多