好的,我使用的是WordPress,但这涉及到SQL方面。
我有一个查询,在这个查询中,我需要使用三个不同的类别过滤掉帖子,但它们都是文章中的术语。
例如:
在我的三个类别中,我选择以下内容:(Academia,Webdevelopment) (Fulltime,Parttime) (Earlycareer)。
现在,我想要做的是确保当我询问帖子中至少有一个这样的术语。
正确结果:带标记的帖子Academia, Fulltime, Earlycareer
不正确的结果:带有标记Academia, Earlycareer的帖子(没有全职或兼职)
目前,我的查询如下所示:
SELECT * FROM $wpdb->posts WHERE
(
$wpdb->terms.slug IN (list of selected from category 1) AND
$wpdb->terms.slug IN (list of selected from category 2) AND
$wpdb->terms.slug IN (list of selected from category 3)
)
AND $wpdb->term_taxonomy.taxonomy = 'jobtype' AND .......当使用此查询时,当我跨不同类别进行选择时,它不会返回任何结果(也就是说,我可以从类别1中选择4件东西,并且它有结果,但是我不能从类别2或3中选择任何东西。反之亦然)
我不确定这是否与在同一专栏中多次使用IN有关。
提前感谢您的帮助!
发布于 2012-04-25 20:22:27
你的询问似乎是正确的。在SQL中,对于同一列使用in没有任何限制。
但是,请确保list of selected from category 1/2/3查询中没有空值。即使这些列表中的单个空值也会由于整个“WHERE”条件而给出NULL,因此您将一无所获。
如果这没有帮助,那肯定是WordPress问题。
https://stackoverflow.com/questions/10322873
复制相似问题