mysql – 如何将一列分为两列?

我有这张桌子:

+---------+---------------+------------+  
| c_data  | c_characters  | c_numbers  |  
+---------+---------------+------------+  
| abc123  |               |            |
+---------+---------------+------------+  
| hb045   |               |            |
+---------+---------------+------------+  
| awrg5   |               |            |
+---------+---------------+------------+  
| xyz456  |               |            |
+---------+---------------+------------+

我想要单独的c_data字符和数字,
然后更新到c_characters和c_numbers字段
如何使用查询更新字段?

最佳答案 不幸的是,MySQL(还)没有任何
REGEXP_REPLACE() function like other databases.如果你愿意,可以给
issue 29781一些爱.

但由于您只是将数字作为分离标准,因此您可以编写以下语句来获得您正在寻找的结果:

UPDATE my_table
SET c_characters =
  replace(
    replace(
      replace(
        replace(
          replace(
            replace(
              replace(
                replace(replace(replace(c_data, '0', ''), '1', ''), '2', ''), '3', ''
              ), '4', ''
            ), '5', ''
          ), '6', ''
        ), '7', ''
      ), '8', ''
    ), '9', ''
  ),
  c_numbers =
    replace(v, 
      replace(
        replace(
          replace(
            replace(
              replace(
                replace(
                  replace(
                    replace(replace(replace(c_data, '0', ''), '1', ''), '2', ''), '3', ''
                  ), '4', ''
                ), '5', ''
              ), '6', ''
            ), '7', ''
          ), '8', ''
        ), '9', ''
      ), ''
    )
点赞