我有一个名为'variants'的自定义字段,里面有颜色(逗号分隔),如“黑色,红色,蓝色”。 我需要通过cron作业每天将颜色替换为另一种语言。对于单一颜色变化,这可以将Black变为Noir:
UPDATE `wp_postmeta`
SET `meta_value` = replace(meta_value, 'Black', 'Noir')
WHERE `meta_key` LIKE 'variations'
一切都很好,但我想在同一个查询中替换多种颜色。我不希望有20个类似的查询来涵盖所有20种可能的颜色变化。
这样的事情可能吗?
UPDATE `wp_postmeta`
SET `meta_value` = replace(meta_value, 'Black', 'Noir'), (meta_value, 'Green', 'Vert')
WHERE `meta_key` LIKE 'variations'
我没有测试系统,我不想搞砸我的数据库。
答案 0 :(得分:2)
您可以使用上次将REPLACE返回到新的REPLACE
轻松完成此操作UPDATE `wp_postmeta`
SET `meta_value` = REPLACE(
REPLACE(
REPLACE( meta_value,
'Black',
'Noir'
),
'Geen',
'Vert'),
'Blue',
'Blu')
WHERE `meta_key` LIKE 'variations'
答案 1 :(得分:1)
为了让您对UPDATE
查询可能执行的操作充满信心,几乎总是可以形成SELECT
,您可以看到您使用它生成的数据。在这种情况下,您可以这样做:
SELECT meta_value, REPLACE(
REPLACE( meta_value,
'Black',
'Noir'
),
'Geen',
'Vert')
FROM wp_postmeta WHERE meta_key LIKE variations;