根据 table 中的值查询 table
Query a table based on values from within that table
我们有一个包含问答插件的 WordPress 网站,需要将其移至其他主机。问答帖子仅占帖子总数的一小部分 table,因此我想使用 SQL 查询将它们过滤掉。
我想通过 PhpMyAdmin select 数据库中符合以下条件之一的行的所有内容:
post_type = "answer"
post_type = "question"
- post_type 包含修订,前面是前面任一条件的 ID。例如:
21-revision-v1
或 10903-revision-v1
我想要 select 那些第一个数字部分与前 2 个要求中 selected 的帖子 ID 相匹配的帖子。
我是 SQL 的新手,所以我开始使用谷歌搜索,发现了临时表的概念。这导致我创建了这段代码:
SELECT * INTO #QA
FROM `wp_posts` WHERE
`post_type` = "answer" OR
`post_type` = "question"
但是我收到以下错误:
#1064 - Er is iets fout in de gebruikte syntax bij 'FROM wp_posts
WHERE
post_type
= "answer" OR
post_type
= "question" LIMI' in regel 2
翻译成“附近的语法有问题”......
我的尝试可行吗?
MySQL 不支持 select ... into ...
语法写入 table,如 pinpointed in the documentation.
您可以使用 insert ... select
:
insert into `#qa`
select *
from wp_posts
where post_type in ('question', 'answer')
SELECT * INTO...
语法用于创建新的 table。
如果这是您想要的,那么 MySql 的语法是:
CREATE TABLE tablename AS
SELECT * FROM `wp_posts`
WHERE `post_type` = 'answer' OR `post_type` = 'question'
您使用的语法最常与 SQL 服务器相关联。 MySQL 使用(更常见的)create table as
语法。并且,它专门允许语法中的临时 tables。
因此,MySQL 中的等价物是 CREATE TABLE AS
:
CREATE TEMPORARY TABLE QA AS
SELECT p.*
FROM wp_posts p
WHERE post_type IN ('answer', 'question');
请注意,临时 tables 是一种非常特殊的 table 类型,它仅存在于当前“会话”中——比如说,您当前与数据库的连接。它对其他用户不可见,当您重新连接到数据库时它会消失。
我们有一个包含问答插件的 WordPress 网站,需要将其移至其他主机。问答帖子仅占帖子总数的一小部分 table,因此我想使用 SQL 查询将它们过滤掉。
我想通过 PhpMyAdmin select 数据库中符合以下条件之一的行的所有内容:
post_type = "answer"
post_type = "question"
- post_type 包含修订,前面是前面任一条件的 ID。例如:
21-revision-v1
或10903-revision-v1
我想要 select 那些第一个数字部分与前 2 个要求中 selected 的帖子 ID 相匹配的帖子。
我是 SQL 的新手,所以我开始使用谷歌搜索,发现了临时表的概念。这导致我创建了这段代码:
SELECT * INTO #QA
FROM `wp_posts` WHERE
`post_type` = "answer" OR
`post_type` = "question"
但是我收到以下错误:
#1064 - Er is iets fout in de gebruikte syntax bij 'FROM
wp_posts
WHERE
post_type
= "answer" OR
post_type
= "question" LIMI' in regel 2
翻译成“附近的语法有问题”......
我的尝试可行吗?
MySQL 不支持 select ... into ...
语法写入 table,如 pinpointed in the documentation.
您可以使用 insert ... select
:
insert into `#qa`
select *
from wp_posts
where post_type in ('question', 'answer')
SELECT * INTO...
语法用于创建新的 table。
如果这是您想要的,那么 MySql 的语法是:
CREATE TABLE tablename AS
SELECT * FROM `wp_posts`
WHERE `post_type` = 'answer' OR `post_type` = 'question'
您使用的语法最常与 SQL 服务器相关联。 MySQL 使用(更常见的)create table as
语法。并且,它专门允许语法中的临时 tables。
因此,MySQL 中的等价物是 CREATE TABLE AS
:
CREATE TEMPORARY TABLE QA AS
SELECT p.*
FROM wp_posts p
WHERE post_type IN ('answer', 'question');
请注意,临时 tables 是一种非常特殊的 table 类型,它仅存在于当前“会话”中——比如说,您当前与数据库的连接。它对其他用户不可见,当您重新连接到数据库时它会消失。