Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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数据库中查询更新数据,在表1中搜索,在表2中更新,如何更新?_Mysql_Database_Wordpress - Fatal编程技术网

在MYSQL数据库中查询更新数据,在表1中搜索,在表2中更新,如何更新?

在MYSQL数据库中查询更新数据,在表1中搜索,在表2中更新,如何更新?,mysql,database,wordpress,Mysql,Database,Wordpress,我正在试图弄清楚如何在一个大型wordpress数据库中快速更改某些内容,通过GUI进行更改需要花费很长时间,我认为在数据库上执行此指令将更加高效,因为这是一次性的事情 我有以下表格: wp_posts -------- ID post_status wp_termrelationships -------------------- object_id term_taxonomy_id 我需要执行一个mysql查询,在表wp\u termrelationships中查找term\u taxo

我正在试图弄清楚如何在一个大型wordpress数据库中快速更改某些内容,通过GUI进行更改需要花费很长时间,我认为在数据库上执行此指令将更加高效,因为这是一次性的事情

我有以下表格:

wp_posts
--------
ID
post_status

wp_termrelationships
--------------------
object_id
term_taxonomy_id
我需要执行一个mysql查询,在表wp\u termrelationships中查找term\u taxonomy\u id'8232',如果术语分类法\u id'8232'匹配,则将对象\u id用于该匹配,并使用该数据搜索表wp\u postsid。当在表wp_postsID中找到匹配项时,将每个post的post_状态更新为“发布”

除了wp_posts表中的post_状态外,不做任何更改


对我来说,这个查询非常复杂,有什么想法吗?

让我们来解构您的需求,并构建查询:

我需要执行一个mysql查询,在wp\u termrelationships表中查找术语\u taxonomy\u id'8232'


如果术语“分类法”-U id“8232”匹配,则获取该匹配的对象”-U id,并使用该id在表wp”-U posts列id中搜索从对象”-U id中的匹配中获得的数据

这里我使用一个子查询:

SELECT *
FROM wp_posts
WHERE ID IN (SELECT object_id
             FROM wp_termrelationships
             WHERE term_taxonomy_id = 8232)

找到这些匹配项后,将表wp_posts中每个匹配post的post_状态更新为“发布”


在这里,我想当然地认为术语_taxonomy _id是一个整数。

让我们解构您的需求,并构建查询:

我需要执行一个mysql查询,在wp\u termrelationships表中查找术语\u taxonomy\u id'8232'


如果术语“分类法”-U id“8232”匹配,则获取该匹配的对象”-U id,并使用该id在表wp”-U posts列id中搜索从对象”-U id中的匹配中获得的数据

这里我使用一个子查询:

SELECT *
FROM wp_posts
WHERE ID IN (SELECT object_id
             FROM wp_termrelationships
             WHERE term_taxonomy_id = 8232)

找到这些匹配项后,将表wp_posts中每个匹配post的post_状态更新为“发布”


在这里,我想当然地认为term\u taxonomy\u id是一个整数。

所以表“wp\u posts”没有列“term\u taxonomy\u id”?那么表“wp_termrelationships”中的哪一列包含了表“wp_posts”的引用?你完全正确,忘记了它必须是2之间的引用,我已经更新了我的主要帖子以更好地解释,我希望这有帮助?哇,请编辑问题并使用块代码来描述你的表,并将文本与代码分开。现在看起来像胡言乱语。执行此操作时,请查看“编辑”窗口右侧的“编辑工具”帮助。如果你看到问题的格式很奇怪,想象一下我们在问题中没有上下文。对不起,我现在更新得更清楚了,“wp_posts”表中没有“term_taxonomy_id”列?那么表“wp_termrelationships”中的哪一列包含了表“wp_posts”的引用?你完全正确,忘记了它必须是2之间的引用,我已经更新了我的主要帖子以更好地解释,我希望这有帮助?哇,请编辑问题并使用块代码来描述你的表,并将文本与代码分开。现在看起来像胡言乱语。执行此操作时,请查看“编辑”窗口右侧的“编辑工具”帮助。如果你看到问题的格式很奇怪,想象一下我们在问题中没有上下文。对不起,我现在更新得更清楚了。这可能有很多问题要问,因为它可能脱离主题,但如果我想在运行之前测试这个查询,那么改为选择“更新”就足够了吗?是的,第二个
SELECT*
就是这样做的。运行SELECT查询时出错:**/SQL错误(1242):子查询返回的行数超过1行*/**这是什么导致的问题?需要多行@回答得好!非常翔实和完整。做得好。测试查询返回了我正在寻找的值,我认为可以标记为已解决,非常感谢您的大量经验和帮助@NIC3500这可能需要很多,因为它可能会脱离主题,但如果我想在运行此查询之前测试此查询,将“更新”改为“选择”是否足够?是的,第二个
SELECT*
就是这样做的。运行SELECT查询时出错:**/SQL错误(1242):子查询返回的行数超过1行*/**这是什么导致的问题?需要多行@回答得好!非常翔实和完整。做得好。测试查询返回了我正在寻找的值,我认为可以标记为已解决,非常感谢您的大量经验和帮助@Nic3500
UPDATE wp_posts
SET post_status = 'publish'
WHERE ID IN (SELECT object_id
             FROM wp_termrelationships
             WHERE term_taxonomy_id = 8232)