【发布时间】:2011-07-29 21:44:55
【问题描述】:
STACK\HYUUM.ROOOO
我需要删除剩下的字符
'\'
结果应该是
HYUUM.ROOOO
请帮忙
【问题讨论】:
STACK\HYUUM.ROOOO
我需要删除剩下的字符
'\'
结果应该是
HYUUM.ROOOO
请帮忙
【问题讨论】:
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' 中的反斜杠。
【讨论】:
尝试:
SUBSTRING_INDEX('STACK\HYUUM.ROOOO', '\\', -1)
【讨论】:
REPLACE('STACK\HYUUM.ROOOO','\\','');
ups 错误。我会努力寻找解决办法。
【讨论】:
SUBSTRING_INDEX() 相结合以匹配 \ 剩下的所有内容应该可以解决。编辑:想一想,这可能是整个解决方案:-P
我知道了:)
select employee_id,emp_email,SUBSTRING_INDEX(user_name, '\\', -1)
from employee_master
【讨论】: