如何将文本结尾替换为列中的前端

时间:2017-10-08 23:56:06

标签: mysql mariadb

我在MySQL中有一个列列表。我想用mariaDB查询执行MySQL,它将特定列A的最后一个文本放在该特定列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 个答案:

答案 0 :(得分: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  |
+------------------+