mysql sql语句实现将一个字符串里面的值换位置,

例如 : 在一个字段中 tags 值是:“天空 一年级”修改为 “一年级 天空” 应该怎样做 ,,是换取大量数据,下标不明去,要根据字段找出来,也有可能为空,也有可能就一个值。

你的字段值都是以空格分割的吗

我想应该是大量数据来调换,如有有空格,按照空格切分,然后再末尾追加。如果没有空格,那么就要写存储过程,按照汉语的分词来切分。将词汇用汉语词汇分割,分割完了追加末尾。

mysql中的replace是全部替换。 将2个进行交叉这个是不可行的,建议用截取substring.
例如 “天空 一年级”修改为 “一年级 天空”
update tableA set columnA = substring(columnA,4,3)+substring(columnA,3,1)+substring(columnA,1,2)

如果不知道截取的字符串位置就直接用LOCATE(substr,str) 函数进行定位然后拆分合并

其实,没太懂你到底要实现一个什么功能,如果只是想单独的查询出来是你说的那种效果,并且你知道截取位置。那只需要用到两个函数就可以了。分别是截取字符串:substr和连接:concat。比如表名为test,字段为name。name里想把前两个字换到最后。

 select concat(substr(name,3,length(name)),substr(name,1,2)) as name from test;

把 【 select 天空,一年级 from 表;】换成:【select 一年级,天空 from 表;】,查出的结果就换了。

你最好 列出几组 有特点的数据样本 看看究竟是什么样的数据

写个 函数应该能搞的定