mysql - 替换 SQL 数据库中同一自定义字段中的多个字符串值

标签 mysql wordpress

我有一个名为“变体”的自定义字段,里面有颜色(逗号分隔),如“黑色、红色、蓝色”。 我需要每天通过 cron 作业将颜色替换为另一种语言。对于一种单一的颜色变化,这可以将黑色变为黑色:

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'   

我没有测试系统,我不想弄乱我的数据库。

最佳答案

你可以很容易地做到这一点,使用你最后一次返回的 REPLACE 到一个新的 REPLACE

UPDATE `wp_postmeta` 
 SET `meta_value` = REPLACE(
                        REPLACE(
                            REPLACE(  meta_value, 
                                      'Black', 
                                      'Noir'
                            ), 
                            'Geen', 
                            'Vert'),
                        'Blue',
                        'Blu')
 WHERE `meta_key` LIKE 'variations'   

关于mysql - 替换 SQL 数据库中同一自定义字段中的多个字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15173098/

相关文章:

MySQL 查询计算行之间的时间差

php - 如何将我的 Android 应用程序连接到我的 PHP/MySQL 后端?

php - 参数为 false 时插入空值

Firefox 在 CSS 之前加载 HTML

wordpress - 无法调用容器命令

php - 自定义模板页面标题未在 WordPress 中加载 style.css

mysql - 表连接后 SQL 更新表属性

php - mysql 计数有问题

php - 如何创建包含 WordPress 插件文件的 zip 文件安装程序?

php - 获得前 6 件元素