我必須修改Wordpress站點內的mySql自定義查詢。 我會盡力向你解釋我的問題,簡化查詢,這真的需要知道。帶有AND和OR(包含和排除子句)的HAVING COUNT(DISTINCT)的mySql查詢
表cms_posts(別名 'P')是INNER接合到cms_term_relationship表(變體 'term_rel')。
我想找到所有cms_posts與term_rel.term_taxonomy值包括IN 211,210,10,9。
我當前的查詢是:
SELECT SQL_CALC_FOUND_ROWS
p.id
FROM cms_posts p
INNER JOIN cms_term_relationships term_rel
ON term_rel.object_id = p.id
WHERE
term_rel.term_taxonomy_id IN (211,210,10,9)
GROUP BY p.id
HAVING
COUNT(DISTINCT term_rel.term_taxonomy_id) = 4
LIMIT 0, 50
的COUNT(DISTINCT確保所有的關係我在WHERE子句striclty跟着問
它所有的工作完美無瑕
但我。需要修改查詢!
我需要拆分WHERE子句。我試着做一個例子。
我需要與term_taxonomy所有帖子在211 和 210,而且在10 OR 9.
我搜索信息的所有這些組合:
211,210,10
211,210,9
所以我需要211和210 都需要,但只有一次發生10 或 9也是需要的。
很好,我需要我的帖子在X,Y,Z類別,至少在A,B或C類別。 X,Y,Z類別是獨一無二的; A,B,C是包容性的。
這個問題並不那麼容易解釋,而我可怕的英語並沒有幫助。
我希望有人瞭解我的英語,甚至我的問題:D
你需要提供這些表的架構,因爲所有這些都可能不知道wordpress是如何工作的 – ddw147