我有这张桌子:
+---------+---------------+------------+
| c_data | c_characters | c_numbers |
+---------+---------------+------------+
| abc123 | | |
+---------+---------------+------------+
| hb045 | | |
+---------+---------------+------------+
| awrg5 | | |
+---------+---------------+------------+
| xyz456 | | |
+---------+---------------+------------+
我想要单独的c_data字符和数字,
然后更新到c_characters和c_numbers字段
如何使用查询更新字段?
答案 0 :(得分:2)
不幸的是,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', ''
), ''
)