MySQL如何通过“拆分”从列中拆分字符串&引用;并在另一列中插入结果,以,分隔?

MySQL如何通过“拆分”从列中拆分字符串&引用;并在另一列中插入结果,以,分隔?,mysql,Mysql,我想问如何将字符串从列(表中的所有行)中按“”拆分,并将以分隔的结果插入同一表中的另一列中 非常感谢你的建议 表结构示例: ------------------------------------------ | Original string | Spliced string | ------------------------------------------ | Some string 001 | Some,String,001 | --------------

我想问如何将字符串从列(表中的所有行)中按“”拆分,并将以分隔的结果插入同一表中的另一列中

非常感谢你的建议

表结构示例:

------------------------------------------
| Original string | Spliced  string       |
------------------------------------------
| Some string 001 | Some,String,001       |
------------------------------------------
如果需要在分隔符上“拆分”字符串,我可能会使用漂亮的
SUBSTRING\u INDEX
函数。但也有一些怪癖需要注意

我会采取的方法当然是先写一个SELECT语句。这将包括SELECT列表中的表达式,这些表达式返回我想要分配给另一列的“分隔”值。在编写UPDATE语句之前,我会使用SELECT语句测试这些表达式

SELECT t.id
     , t.column_i_want_to_split
     , expr1
  FROM mytable t
 ORDER BY t.id
为了测试特定的情况,我会使用内联视图

SELECT t.id
     , t.note
     , t.val
     , expr1
  FROM ( SELECT 1 AS id, 'empty string test' AS note, '' AS val
         UNION ALL SELECT 2, 'null', NULL
         UNION ALL SELECT 3, 'one space', ' '
         UNION ALL SELECT 4, 'four spaces', '    '
         UNION ALL SELECT 5, 'test5', ' abc def '
         UNION ALL SELECT 6, 'test6', 'g  hi kl  m'
       ) t
   ORDER BY t.id
一旦表达式返回要分配给另一列的值,我就会将SELECT转换为UPDATE语句。要处理所有行,请省略WHERE子句

 UPDATE mytable t
    SET t.another_column = expr1

如果没有更明确的规范,或者至少没有一些具体的例子来说明您试图实现的目标,我们只是在猜测。仅给出问题的一般描述,我们只能提供一些一般建议。

编辑您的问题,并提供示例数据和所需结果。