Mysql在字符串内部移动字符

时间:2011-10-28 08:58:17

标签: mysql

只是想知道在Mysql中是否有可能在字符串中移动字符而不必诉诸PHP等。

示例:

Blue Dahlia,

必须成为“蓝色大丽花”。所以删除逗号并将“之后”移到开头。删除逗号可以通过以下方式完成:

... SET field = REPLACE(field, CHAR(47), '')

但是将“the”移到开头似乎让我感到畏惧,因为我无法替换“the”的所有实例,只能替换最后一个逗号之后的实例。

这很容易用PHP完成,但我想知道我是否可以在SQL中完成它,因为它(希望)是一次性的事情。

感谢。

1 个答案:

答案 0 :(得分:1)

您可以尝试:

... SET field = CONCAT_WS(' ', TRIM(SUBSTRING_INDEX(field, ',', -1)), TRIM(SUBSTRING_INDEX(field, ',', 1)))

快速解释:

SUBSTRING_INDEX按分隔符拆分字符串。 -1从右边开始; 1首先从左边开始。

TRIM删除不必要的空格。

CONCAT_WS将部分字符串与空格键分隔符合并。