我需要移动列名
中的值options_2
进入列名
options_1
但在为空时,仅。 (图像中的A点。) 如果options_1不为空(图像中的B点),则不会发生任何事情,因为我不想覆盖现有值。
此外,我想清除我们的选项_2。但这次规则应该只是清除我们的options_2,如果它是options_1的完全重复。这样可以确保它不会删除所有option_2值,这些值是数据库中更有效的值。
结构如下:
database_name>> wp_cart66_products
我研究并找到了命令:
更新' wp_cart66_products'设置' options_1' =' options_2'
但是这没有条件规则,并且也会转移和覆盖有效值,这是我不想要的。
答案 0 :(得分:1)
update wp_cart66_products
set options_1 = options_2,
options_2 = ''
where options_1 IS NULL or options_1 = ''
答案 1 :(得分:1)
这应该做你需要的。请注意,在复制数据时会继续并清除options_2
,例如选项1&如果备选方案2保持不变,那么2将是平等的。
UPDATE `wp_cart66_products`
SET
`options_1` = `options_2`,
`options_2` = ''
WHERE
`options_1` = ''
OR `options_1` IS NULL
这会处理你图片A座的所有情况,但不会触及B座中的那些项目。这听起来像你想要的。
然后,您可以运行这样的第二个查询来处理option_1和option_2从一开始就匹配的情况,并且您想要清除options_2。
UPDATE `wp_cart66_products`
SET `options_2` = ''
WHERE `options_1` = `options_2`
运行这两个查询后,您的字段元组只会有两种不同的情况:
options_1
是非零长度字符串,options_2
是空字符串options_1
和options_2
是非匹配的非零长度字符串。