我正在使用WordPress,但此問題更多涉及到涉及的SQL。如果需要的話,我會很樂意提出。使用SQL/PHP中的三個術語進行查詢
我正在研究http://www.libertyguide.com/jobs,我試圖改變過濾機制。目前這是一個全球性的OR
查詢。
不管怎麼說,我有三個過濾列表以及我存儲什麼選入三串(利益,類型,經驗)以下列方式:
"($wpdb->terms.slug = 'webdevelopment' OR $wpdb->terms.slug = 'journalism' OR ...) AND"
它是由填充無論是在我的過濾選擇名單。
當它發生的時候,我有這樣一個基本的查詢(我要離開了LEFT JOINS
):
前:
SELECT * FROM $wpdb->posts WHERE ($wpdb->terms.slug = 'fromlist1'
OR $wpdb->terms.slug = 'fromlist2' OR $wpdb->terms.slug = 'fromlist3')
AND $wpdb->term_taxonomy.taxonomy = 'jobtype'...
後:
SELECT * FROM $wpdb->posts WHERE
($wpdb->terms.slug = 'fromlist1' OR $wpdb->terms.slug = 'fromlist1again')
AND ($wpdb->terms.slug = 'fromlist2' OR $wpdb->terms.slug = 'fromlist2again')
AND ($wpdb->terms.slug = 'fromlist3' OR $wpdb->terms.slug = 'fromlist3again')
AND $wpdb->term_taxonomy.taxonomy = 'jobtype'...
所以基本上我想從
OR
過濾器
到
一個AND
濾波器OR
濾波其間。
我的新過濾只在選擇了一個項目時才起作用,但當我選擇多個項目時(我知道會與幾個帖子匹配),它將不會返回任何內容。
我想通過邏輯,我沒有看到任何錯誤。我知道別的什麼都沒有錯,所以它必須是查詢本身。
任何正確的方向步驟將不勝感激。謝謝!
UPDATE 從混亂,基本上我有這樣的:
"SELECT ...... WHERE $terms ..."
,但我想
"SELECT ....... WHERE $interests AND $type AND $experience"
我不想把它過濾$interest[1] OR $interest[2] OR $type[1] OR $experience[1]
,而是希望它過濾器($interest[1] OR $interest[2]) AND ($type[1]) AND ($experience[1])
我希望這樣做更有意義
* 更新2 *
這裏的和例如:
在我的興趣列表中,我選擇例如三兩件事:web開發,學術界,新聞界。
在我的類型列表中,我選擇了兩兩件事:全職,兼職
以我的經驗列表中,我選擇了三兩件事:Earlycareer,職業生涯中期階段,Latecareer。
當我運行我的查詢時,我想確保每個記錄至少有三個列表中的每個列表中的一個。可能的結果:(Web開發,兼職,中等教育),(學術界,全職,早期教育者,中等教育者)。
不是一個結果:(新聞,Earlycareer) - 缺少全職或兼職
我真的希望這更清除它。如果我能夠正確地工作,我願意給予賠償。
也許這會有所幫助,因爲我知道有很多'WP'語法會把我扔掉,並可能會拋棄其他人。你可以給出一個'$ interest [1','$ interest [2]','$ type [1]','$ experience [1]''的示例列表,然後顯示您期望/想要修改的查詢的行回來?據我所知,你說它必須在'experience'和'type'中出現,並且至少有一個'interest'列表,對嗎?如果是這樣,使WP做到這一點的問題? – Anthony 2012-04-25 17:33:54
@Anthony我想你明白了。這不僅僅是WP,我遇到了問題,這是SQL語句。用示例列表查找更新。 – 2012-04-25 17:44:14