Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL:使用来自同一表的结果更新多行_Mysql_Sql_Wordpress - Fatal编程技术网

Mysql SQL:使用来自同一表的结果更新多行

Mysql SQL:使用来自同一表的结果更新多行,mysql,sql,wordpress,Mysql,Sql,Wordpress,我试图用同一个表的一行中可用的值更新表中多行中的字段(post_id)。该表是Wordpress表wp_meta 这是表格的结构 meta_id | post_id | meta_key | meta_value 1 16 author "Staff" 2 16 title "title" 3 16 old_id 250 4 17

我试图用同一个表的一行中可用的值更新表中多行中的字段(post_id)。该表是Wordpress表wp_meta

这是表格的结构

meta_id  | post_id |  meta_key |  meta_value
1           16          author    "Staff"
2           16          title      "title"
3           16          old_id       250
4       17          author      "jay"
5           17          old_id     251
6       18          author      "panda"
7           18          title      "realy nice"
8           18          old_id      252
9           18          some_key    lorem"
我希望这样,post_id应该被相应的post集的旧id替换。结果应该是这样的

meta_id  | post_id |  meta_key |  meta_value
1           250          author    "Staff"
2           250         title      "title"
3           250         old_id       250
4       251         author      "jay"
5           251         old_id     251
6       252         author      "panda"
7           252         title      "realy nice"
8           252         old_id      252
9           252         some_key    lorem"
这是我正在尝试的,但它是错误的

UPDATE wprk_postmeta as t1
SET post_id = (SELECT t2.meta_value from  wprk_postmeta as t2 WHERE t2.meta_key='old_id' AND t2.post_id=t1.post_id)

当我运行上述操作时,我的get子查询返回了多个值错误。

我想您需要一个
连接

UPDATE wprk_postmeta pm JOIN
       work_postmeta pmo
       ON pm.post_id = pmo.post_id AND
          pmo.meta_key = 'old_id'
    SET post_id = pmo.meta_value;

我想你想要一个
加入

UPDATE wprk_postmeta pm JOIN
       work_postmeta pmo
       ON pm.post_id = pmo.post_id AND
          pmo.meta_key = 'old_id'
    SET post_id = pmo.meta_value;

对子查询进行排序并将其限制为一对子查询进行排序并将其限制为一