使用MySQL从字符串中删除包含特定字符的字符串部分

时间:2011-04-05 11:45:45

标签: mysql substring

STACK\HYUUM.ROOOO

我需要删除留下的字符

'\'

,结果应为

HYUUM.ROOOO

请帮助

4 个答案:

答案 0 :(得分:6)

根据documentation

 SUBSTRING_INDEX(str,delim,count)
  

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

在你的例子中,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'中的反斜杠。

答案 1 :(得分:3)

尝试:

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

答案 2 :(得分:1)

REPLACE('STACK\HYUUM.ROOOO','\\','');
错误。我会尽力找到解决方案。

答案 3 :(得分:1)

我知道了:)

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