mysql查询只有在存在其他字段时才更新字段?

时间:2017-11-07 13:18:09

标签: mysql

我有一个包含这些字段的表格:

POST_ID

meta_key

meta_value

只有当存在值为“_variation_description”的行“meta_key”时,查询才应清除(清空)“name_value”的值,其中“meta_key”=“_ sku”。并且两者在给定文本的post_id中具有相同的值,并将其从“meta_value”的值中删除,其中“meta_key”是“sku”。

我上传了一个捕获,以帮助理解我需要的东西。

假设我有这些行:

id_post - meta_key - meta_value

63387 - _sku - 23454355

63387 - _variation_description - xxxx

63387 - _sku - 99978777

然后在运行查询后,结果应为:

id_post - meta_key - meta_value

63387 - _sku -

63387 - _variation_description - xxxx

17633 - _sku - 99978777

enter image description here

1 个答案:

答案 0 :(得分:2)

您应该使用自我加入的更新

  update my_table m1
  inner join my_table m2 on m1.id_post = m2.id_post  
        and m2.meta_key = '_variation_description'
        and m1.meta_key = 'sku'

  set m1-meta_value =''