从字符串 MYSQL 中修剪多个尾随和前导关键字

GoS*_*ash 2 mysql sql database replace trim

我有一个像这样的数据表

 ---------------
|town           |
 ---------------
|Longton North  |
|Longton South  |
|Longton North  |
|Longton East   |
|Longton West   |
|East Valley    |
|West Valley    |
 ---------------
Run Code Online (Sandbox Code Playgroud)

我知道如何通过使用从字符串中修剪尾随和前导字符

TRIM(BOTH 'North' FROM town)
Run Code Online (Sandbox Code Playgroud)

但我想从我的结果中修剪北、南、西、东。所以输出应该像

 ---------
|town     |
 ---------
|Longton  |
|Longton  |
|Longton  |
|Longton  |
|Longton  |
|Valley   |
|Valley   |
 ---------
Run Code Online (Sandbox Code Playgroud)

Rus*_*ter 6

试试这个..这对你有任何用处..

select 
trim(TRIM(BOTH 'South' FROM TRIM(BOTH 'North' FROM TRIM(BOTH 'East' FROM TRIM(BOTH 'West' FROM town))))) from tbl
Run Code Online (Sandbox Code Playgroud)

或更多指定

select trim(case 
when position('North' in town) > 0 then TRIM(BOTH 'North' FROM town) 
when position('South' in town) > 0 then TRIM(BOTH 'South' FROM town) 
when position('East' in town) > 0 then TRIM(BOTH 'East' FROM town) 
when position('West' in town) > 0 then TRIM(BOTH 'West' FROM town) end)
from tbl
Run Code Online (Sandbox Code Playgroud)