Mysql - 将字符串的一部分复制到另一个字段并删除该字符串

时间:2015-05-10 07:11:27

标签: mysql replace

在我的一个字段的Mysql中,我有例如这个字符串 -

  

一些文字[= ajunkt]

我想复制方括号内的部分字符串,正好

  

ajunkt

到另一个字段并删除[= ajunkt]

1 个答案:

答案 0 :(得分:1)

如果模式相同,您可以使用substring_index将字符串的那一部分作为

mysql> select substring_index(substring_index('some text [= ajunkt]','[=',-1),']',1) as copy;
+---------+
| copy    |
+---------+
|  ajunkt |
+---------+
1 row in set (0.00 sec)

现在将文本复制到另一个文件中,您可以将其用作

update table_name
set 
copy_col_name = substring_index(substring_index(col_name','[=',-1),']',1);

最后,您可以将现有字符串中的该部分替换为

 select 
 replace(
   'some text [= ajunkt]',
   concat(
     '[= ',
     trim(
       substring_index(
         substring_index('some text [= ajunkt]',
         '[=',-1),
        ']',1
        ) 
      ),
    ']'
  ),
'') as new_str ;


+------------+
| new_str    |
+------------+
| some text  |
+------------+

将上面的选择更改为更新,并将硬编码的输入值替换为列名。