Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.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基于表2更新表1列';s列值_Mysql_Sql_Sql Update - Fatal编程技术网

MYSQL基于表2更新表1列';s列值

MYSQL基于表2更新表1列';s列值,mysql,sql,sql-update,Mysql,Sql,Sql Update,基于另一个表的列条件的基本SQL更新: UPDATE table_1 SET col_value = '0' WHERE tbl2_col_val IN (SELECT tbl2_col_val FROM table_2 WHERE tbl2_col_val = 'whatever') 我得到的错误是: #1054-在'in/ALL/ANY子查询' 无论我到哪里,我总是发现同样的逻辑,但它不起作用。问题是在我相信的第一

基于另一个表的列条件的基本SQL更新:

UPDATE table_1 
   SET col_value = '0' 
 WHERE tbl2_col_val IN 
        (SELECT tbl2_col_val 
           FROM table_2 
          WHERE tbl2_col_val = 'whatever')
我得到的错误是:

#1054-在'in/ALL/ANY子查询'

无论我到哪里,我总是发现同样的逻辑,但它不起作用。问题是在我相信的第一个WHERE条款之后

编辑:

Wordpress数据库。大量帖子被导入到一个新的构建中,该主题对所有帖子都有一个自定义选项(复选框)。导入的帖子没有选择该选项并添加meta_值。如果我选中该复选框,则该post才会获得meta_值1,未选中将该值设置为0。它基本上只是一个枚举。我有超过1400个帖子,有些需要检查,有些需要检查。我能够运行一个函数,在functions.php中自动检查所有这些函数,现在我需要在DB中运行SQL更新,以自动取消选中其他函数。这就是使用WP-DB表查询的外观

UPDATE wp_postmeta SET meta_value = '0' WHERE term_taxonomy_id IN (SELECT term_taxonomy_id FROM wp_term_relationships WHERE term_taxonomy_id = '993')

希望这对您有所帮助。

请发布这两个表的定义。。。。并将表别名添加到所使用的每个列名中。很遗憾,这会将t1.col_值中的所有值更新为0。您必须保留关系条件,否则它会更新所有值。对于ex t1.pk_colname=t2.fk_col_name
UPDATE table1 t1
JOIN table_2  t2 ON 
t2.tbl2_col_val IN (SELECT t2.tbl2_col_val FROM table_2 WHERE t2.tbl2_col_val = 'whatever')
SET t1.col_value = '0';