简体   繁体   中英

Remove part of string including a specific character from a string using MySQL

STACK\HYUUM.ROOOO

I need to remove the characters left to

'\'

and the result should be

HYUUM.ROOOO

Please Help

According to the documentation :

 SUBSTRING_INDEX(str,delim,count)

Returns the substring from string str before count occurrences of the delimiter delim. If count is positive, everything to the left of the final delimiter (counting from the left) is returned. If count is negative, everything to the right of the final delimiter (counting from the right) is returned. SUBSTRING_INDEX() performs a case-sensitive match when searching for delim.

In your example, str is 'STACK\\HYUUM.ROOOO'. Be careful with '\\', it must be escaped because it's a special character. To do that, replace '\\' by '\\\\'. delim is '\\\\' (escaped too) and count is -1 because you want the right part of the delim.

Example :

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

Then

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

Or, a simpler example :

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

Don't forget to escape the backslash in 'STACK\\HYUUM.ROOOO'.

试试:

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

ups mistake. I'll try to find solution.

I got the it :)

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM