Mysql 在字符串内部移动字符

标签 mysql

只是想知道在 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/

相关文章:

PHP Undefined Index error 和 Undefined variable with $_Files

php - 具有计数和限制问题的子查询

php - bool 搜索运算符优化,尊重引用的术语

mysql - 将文本字段转换为日期

php - 如何将 PHPMyAdmin MySQL 中同一表中的一行值复制到另一行

mysql - 使用 MongoDb 的数据库结构

javascript - 无法连接 MySQL DB,出现 ECONNREFUSED

php - Mysql查询某列的总和不显示

mysql - 如何在MariaDB中选择每个组中的最新成员?

mysql - 引用另一个表的行级值 - 在 IF 条件下执行 INSERT INTO ... ON DUPLICATE KEY UPDATE