2017-10-08 64 views
0

我有MySQL列中的列表。我想和MariaDB的查詢,哪個地方的特定列A的最後文本進行的MySQL,以特定的列A如何將文本的末尾替換爲列中的前面

例如

Column A 
Golden Street 17a 
Red Street 12/a 
Street Golden 
Amazing 7 Street Travel 
... 


Column A 
17a Golden Street 
12/a Red Street 
Golden Street 
Travel Amazing 7 Street 
... 

回答

1
mysql> SET @x = 'Red Street 12/a'; 
mysql> SELECT CONCAT(SUBSTRING_INDEX(@x, ' ', -1), ' ', 
        SUBSTRING_INDEX(@x, ' ', 2)); 
+------------------------------------------------------------------------+ 
| CONCAT(SUBSTRING_INDEX(@x, ' ', -1), ' ', SUBSTRING_INDEX(@x, ' ', 2)) | 
+------------------------------------------------------------------------+ 
| 12/a Red Street              | 
+------------------------------------------------------------------------+ 

(注的第一個文本:我假設列中有2個空格,如果不是這樣的話,那麼編輯你的問題更加精確。)

如果它只是最後一個移動到前面的「單詞」,那麼考慮:

mysql> SELECT CONCAT(SUBSTRING_INDEX(@x, ' ', -1), ' ', 
      LEFT(@x, LENGTH(@x) - 
       LENGTH(SUBSTRING_INDEX(@x, ' ', -1)))) AS swap; 
+------------------+ 
| swap    | 
+------------------+ 
| 12/a Red Street | 
+------------------+ 
+0

文本之間的空間不一致。它可以是2到4個單詞。 –

+0

最後一塊只有1個「單詞」? –

+0

是的,只有最後一個單詞會移動。 –