只是想知道在 Mysql 中是否有可能在字符串中移动字符而不必求助于 PHP 等。
示例:
蓝色大丽花
必须成为“蓝色大丽花”。因此,删除逗号并将其后面的“the”移到开头。删除逗号可以通过以下方式完成:
... SET field = REPLACE(field, CHAR(47), '')
但是将“the”移到开头对我来说似乎令人畏惧,因为我无法替换“the”的所有实例,只能替换最后一个逗号之后的实例。
这很容易用 PHP 完成,但我想知道是否可以用 SQL 来完成,因为它(希望)是一次性的事情。
谢谢。
最佳答案
您可以尝试:
... SET field = CONCAT_WS(' ', TRIM(SUBSTRING_INDEX(field, ',', -1)), TRIM(SUBSTRING_INDEX(field, ',', 1)))
快速解释:
SUBSTRING_INDEX
按分隔符分割字符串。 -1
从右侧取第一部分; 1
从左边开始。
TRIM
删除不必要的空格。
CONCAT_WS
将字符串的各个部分与空格分隔符合并。
关于Mysql 在字符串内部移动字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7927118/