admin

根据该表中的值查询表

sql

我们有一个包含Q&A插件的WordPress网站,需要将其移至其他托管服务器。Q&A帖子仅占Posts表总数的一小部分,因此我想使用SQL查询将其过滤掉。

我想通过PhpMyAdmin为匹配以下条件之一的行选择数据库中的所有内容:

  1. post_type = "answer"
  2. post_type = "question"
  3. post_type包含修订版本,其前面带有先前条件之一的ID。例如:21-revision-v110903-revision-v1在我要选择第一个数字部分与在前2个要求中选择的职位ID匹配的职位的位置。

我是SQL的完全新手,所以我从进行一些谷歌搜索开始,发现了临时表的概念。这导致我创建以下代码:

SELECT *  INTO #QA 
FROM `wp_posts` WHERE 
`post_type` = "answer" OR
`post_type` = "question"

但是我收到以下错误:

#1064-在regel 2中,ge语法为bij’FROM wp_postsWHERE
post_type=“ answer” OR
post_type=“ question” LIMI“

意思是“附近的语法有问题”…。

我正在尝试的甚至可行吗?


阅读 119

收藏
2021-07-01

共1个答案

admin

您使用的语法最通常与SQL Server相关联。MySQL使用(更常见的)create table as语法。并且,它特别允许使用语法中的临时表。

因此,MySQL中的等效项是CREATE TABLE AS

CREATE TEMPORARY TABLE QA AS
    SELECT p.*  
    FROM wp_posts p
    WHERE post_type IN ('answer', 'question');

请注意,临时表是一种非常特殊的表类型,仅存在于当前的“会话”中-例如,您当前与数据库的连接。它对其他用户不可见,当您重新连接到数据库时,它将消失。

2021-07-01