2017-10-08 41 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

是的,只有最后一个单词会移动。 –