2016-12-07 95 views
1

我有一个数据是这样的修剪多个后和关闭串MYSQL领先的关键字

--------------- 
|town   | 
--------------- 
|Longton North | 
|Longton South | 
|Longton North | 
|Longton East | 
|Longton West | 
|East Valley | 
|West Valley | 
--------------- 

我知道如何修剪使用

TRIM(BOTH 'North' FROM town) 

但我拖尾和先行从串字符表想要在我的结果中修剪北,南,西,东。所以输出应该像

--------- 
|town  | 
--------- 
|Longton | 
|Longton | 
|Longton | 
|Longton | 
|Longton | 
|Valley | 
|Valley | 
--------- 
+3

提示:'TRIM(TRIM(TRIM (TRIM(...))))'。 –

+0

@GordonLinoff像魅力一样工作。非常感谢您的帮助。 –

+0

是啊,它就像头发剪:) – Rahul

回答

1

试试这个..这会为你工作,任何方式..

select 
trim(TRIM(BOTH 'South' FROM TRIM(BOTH 'North' FROM TRIM(BOTH 'East' FROM TRIM(BOTH 'West' FROM town))))) from tbl 

或多个指定

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 
+0

'position'检查只是一个额外的开销 –

+0

我们也可以写这个'select trim(TRIM(BOTH'South'FROM TRIM(BOTH'North'FROM TRIM(BOTH'North'FROM TRIM (从镇上西)'))))从tb' –

+0

这将是一个更好的答案 –