Mysql 对第二个表中的数据使用子字符串_索引 作为我的后续行动:

Mysql 对第二个表中的数据使用子字符串_索引 作为我的后续行动:,mysql,sql,select,subquery,where-clause,Mysql,Sql,Select,Subquery,Where Clause,我想选择wp_posts表中与以下内容匹配的所有内容: post_类型=答案 post_类型=问题 post_类型包含修订,前面是先前任一标准的ID。例如:21-revision-v1或10903-revision-v1,其中我要选择第一个数字部分与前2个要求中选择的职位ID匹配的职位。 我现在构建了一个新的表ap_qa,它保存了来自匹配上述标准1或2的帖子的所有ID 现在,为了选择符合条件3的情况,我考虑使用子字符串_Index作为允许在字符串中进行匹配的条件 我目前的代码是: SELECT

我想选择wp_posts表中与以下内容匹配的所有内容:

post_类型=答案 post_类型=问题 post_类型包含修订,前面是先前任一标准的ID。例如:21-revision-v1或10903-revision-v1,其中我要选择第一个数字部分与前2个要求中选择的职位ID匹配的职位。 我现在构建了一个新的表ap_qa,它保存了来自匹配上述标准1或2的帖子的所有ID

现在,为了选择符合条件3的情况,我考虑使用子字符串_Index作为允许在字符串中进行匹配的条件

我目前的代码是:

SELECT * 
FROM `wp_posts` p 
WHERE p.post_type IN ('answer', 'question') OR
Substring_Index(p.post_Type,'-revision',1) IN QA.ID
其中,后面的第一条规则是满足标准1和2,最后一行是满足标准3。然而,我的语法是无效的,正如返回的一样

错误消息以荷兰语显示:

1064年的今天,Er是第4条规则中使用的gebruikte语法bij'QA.ID'的iets


如错误消息所示,您的systqax错误 使用类似zhis的东西

SELECT * 
FROM `wp_posts` p 
WHERE p.post_type IN ('answer', 'question') 
OR
 QA.ID LIKE CONCAT(Substring_Index(p.post_Type,'-revision',1) ,'%')
LIMIT 0, 25

您需要一个子查询来返回表ap_qa的ID:

或不带ap_qa表:

我现在构建了一个新的表ap_qa,它保存了来自匹配上述标准1或2的帖子的所有ID

你根本不需要临时表格。您可以在单个查询中直接从原始表获得所需的结果:

select *
from wp_posts wp
where post_type in ('answer', 'question') and exists (
    select 1
    from wp_posts wp1
    where 
        wp1.post_type in ('answer', 'question') 
        or wp1.id = substring_index(wp.post_type, '-revision', 1)
)
SELECT * 
FROM `wp_posts` p 
WHERE p.post_type IN ('answer', 'question') 
   OR SUBSTRING_INDEX(p.post_Type,'-revision',1) IN (
         SELECT ID FROM `wp_posts` 
         WHERE p.post_type IN ('answer', 'question')
       )
select *
from wp_posts wp
where post_type in ('answer', 'question') and exists (
    select 1
    from wp_posts wp1
    where 
        wp1.post_type in ('answer', 'question') 
        or wp1.id = substring_index(wp.post_type, '-revision', 1)
)