0

我正在尝试在我的 MySQL 数据库上运行UPDATEusing 。REPLACE

我有一个 WordPress 数据库表 ( wp_postmeta),其中包含四个字段:post_id, meta_id, meta_key, meta_value.

我想要所有带有异足纲的齿状REPLACE体的实例,但前提那个帖子(即那一行)也有一行是属和是Corydoraspost_idmeta_keymeta_value

例如,

post_id     meta_id     meta_key    meta_value
4           14          breeding    Some stuff here about breeding denticulata
2           15          breeding    Some stuff here about breeding denticulata
4           16          genus       Corydoras
2           17          genus       Apistogramma

只有带有meta_idof的行14实际上应该在那里改变,因为带有post_idof的行2不是来自Corydoras属。

这可能吗?我不知道从哪里开始。

提前致谢,

4

1 回答 1

0
UPDATE 
    wp_postmeta AS upd
  JOIN
    wp_postmeta AS chk
      ON  chk.post_id = upd.post_id
SET
    upd.meta_value = REPLACE(upd.meta_value, 'denticulata', 'heteropoda')
WHERE
      chk.meta_key = 'genus'
  AND chk.meta_value = 'Corydoras'
  AND upd.meta_key = 'breeding' ;           -- not sure if you need this line

请注意,这也将更新'denticulatas''heteropodas'(以及包含字符串的任何其他单词denticulata)并且REPLACE()区分大小写,因此Denticulata不会被替换。

于 2012-08-07T21:07:41.063 回答