2015-10-02 70 views
1

嗨,我想寫一個查詢使用,如果在where子句 請建議我怎麼能做到這一點我在那裏的條件如下如果條件在MySQL查詢生成的條款動態

IF(`page_type` ==1, `pages NOT LIKE '%ads/indian-institute-of-technology-bombay.html%' 
OR pages NOT LIKE '%ads/*%' OR pages NOT LIKE '%indian-institute-of-technology-bombay.html/*%'` ,` pages LIKE '%ads/indian-institute-of-technology-bombay.html%' 
OR pages LIKE '%ads/*%' OR 
pages LIKE '%indian-institute-of-technology-bombay.html/*%'`) 

全面查詢

SELECT * FROM `app_slides` WHERE IF(`page_type` ==1, `pages NOT LIKE '%ads/indian-institute-of-technology-bombay.html%' OR pages NOT LIKE '%ads/*%' OR pages NOT LIKE '%indian-institute-of-technology-bombay.html/*%'` ,` pages LIKE '%ads/indian-institute-of-technology-bombay.html%' OR pages LIKE '%ads/*%' OR pages LIKE '%indian-institute-of-technology-bombay.html/*%'`) 
+0

您能向我們展示您的完整查詢,謝謝。 –

+0

是的,先生給我一分鐘 – Deepesh

+0

你能詳細解釋一下你想用if語句做什麼。如果你嘗試執行查詢,是否有錯誤? – brenners1302

回答

0

IF是這樣工作的:

IF(<condition>, <value if true>, <value if false>) 

因此,作爲一個例子

SELECT IF('a' = 'a', 1, 0); //will return 1 
SELECT IF('a' = 'b', 1, 0);//will return 0 

WHERE查詢 使用IF下面的例子演示瞭如何使用IF in a WHERE查詢。

SELECT ... 
WHERE ... 
AND IF(myfield = 'somevalue', 1, 0) = 1 
0

這不應該在一個if中完成,而應該用邏輯運算符來表示。

select ... from ... where (`page_type` == 1 and ...) 
or (`page_type` <>1 and ...) 

您可以通過重寫爲聯合而不是使用或在where條件中進行優化。