【问题标题】:Remove part of string including a specific character from a string using MySQL使用 MySQL 从字符串中删除包含特定字符的部分字符串
【发布时间】:2011-07-29 21:44:55
【问题描述】:
STACK\HYUUM.ROOOO

我需要删除剩下的字符

'\'

结果应该是

HYUUM.ROOOO

请帮忙

【问题讨论】:

    标签: mysql substring


    【解决方案1】:

    根据documentation

     SUBSTRING_INDEX(str,delim,count)
    

    从字符串 str 返回计数出现的分隔符 delim 之前的子字符串。如果 count 为正,则返回最终分隔符左侧(从左侧开始计数)的所有内容。如果 count 为负数,则返回最终分隔符右侧(从右侧开始计数)的所有内容。 SUBSTRING_INDEX() 在搜索 delim 时执行区分大小写的匹配。

    在您的示例中,str 是“STACK\HYUUM.ROOOO”。小心'\',它必须被转义,因为它是一个特殊字符。为此,请将 '\' 替换为 '\\'。 delim 是 '\\' (也被转义了)并且 count 是 -1 因为你想要 delim 的正确部分。

    例子:

    mysql> SELECT * FROM foo;
    +-------------------+
    | name              |
    +-------------------+
    | STACK\HYUUM.ROOOO |
    +-------------------+
    1 row in set (0.00 sec)
    

    然后

    mysql> SELECT SUBSTRING_INDEX(name, '\\', -1) AS foo FROM foo;
    +-------------+
    | foo         |
    +-------------+
    | HYUUM.ROOOO |
    +-------------+
    1 row in set (0.00 sec)
    

    或者,一个更简单的例子:

    SELECT SUBSTRING_INDEX('STACK\\HYUUM.ROOOO', '\\', -1);
    

    不要忘记转义 'STACK\HYUUM.ROOOO' 中的反斜杠。

    【讨论】:

    • 你是对的。但是当我们像这样给出 SELECT SUBSTRING_INDEX('STACK\HYUUM.ROOOO', '\\', -1) 时,结果是 STACKHYUUM.ROOOO
    • @jennifer 当数据库中存在该值时,“\”已被转义。如果你喜欢你的评论,你必须转义'\'。您必须将 SELECT SUBSTRING_INDEX('STACK\HYUUM.ROOOO', '\\', -1) 替换为 SELECT SUBSTRING_INDEX('STACK\\HYUUM.ROOOO', '\\', -1) (见反斜杠)。
    【解决方案2】:

    尝试:

     SUBSTRING_INDEX('STACK\HYUUM.ROOOO', '\\', -1)
    

    【讨论】:

    • 当我给选择 SUBSTRING_INDEX('STACK\HYUUM.ROOOO', '\\', -1) ;我得到了 STACKHYUUM.ROOOO。我需要 HYUUM.ROOOO
    • 但是当我通过从employee_master 中给出select SUBSTRING_INDEX(user_name, '\\', -1) 来选择列名时.. 它可以工作
    【解决方案3】:
    REPLACE('STACK\HYUUM.ROOOO','\\','');
    

    ups 错误。我会努力寻找解决办法。

    【讨论】:

    • 这与 SUBSTRING_INDEX() 相结合以匹配 \ 剩下的所有内容应该可以解决。编辑:想一想,这可能是整个解决方案:-P
    • 我给选择 REPLACE('STACK\HYUUM.ROOOO','\\','');输出是 STACKHYUUM.ROOOO
    • 是的,我知道我正在努力寻找解决方案。我以为你只需要替换一个反斜杠 =)
    【解决方案4】:

    我知道了:)

    select employee_id,emp_email,SUBSTRING_INDEX(user_name, '\\', -1) 
    from employee_master
    

    【讨论】:

      猜你喜欢
      • 2019-11-14
      • 1970-01-01
      • 2022-11-03
      • 2022-11-18
      • 1970-01-01
      • 1970-01-01
      • 2014-07-03
      相关资源
      最近更新 更多