我有这张桌子:
+---------+---------------+------------+
| 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', ''
), ''
)