2012-02-17 12 views
1

我需要幫助編寫一個查詢來驗證第一個表達式,並且如果它的值爲true,將驗證以下表達式。類似於:對同一句子使用OR和AND的MYSQL查詢

SELECT 
    name 
FROM 
    names 
WHERE 
    (tag_id = 1 OR tag_id = 2) AND (tag_id = 3 OR tag_id = 4) 

試圖對if使用子查詢並存在但未成功。

任何幫助?謝謝,

+1

您的邏輯沒有任何意義在這裏。 'tag_id'不能同時滿足'AND'的條件。你能解釋你想達到什麼,也許包括樣本數據和預期結果嗎? – 2012-02-17 20:15:51

回答

3

字裏行間一點,也許是這樣的:

SELECT n1.name 
    FROM names n1 
     INNER JOIN names n2 
      ON n1.name = n2.name 
    WHERE (n1.tag_id = 1 OR n1.tag_id = 2) 
     AND (n2.tag_id = 3 OR n2.tag_id = 4) 
+0

感謝您的幫助,但似乎這不是我的查詢工作,我已經有了大量的聯接。有沒有辦法讓mysql驗證1表達式,如果它的真正驗證下一個? – Henrique 2012-02-17 21:26:13

+1

@亨利克:正如我在對問題的評論中提到的那樣,你需要更好地解釋你正在努力解決的問題。將樣本數據和預期結果添加到您的問題將會爲此做出很大的貢獻。 – 2012-02-17 21:28:31

+0

我明白了,看起來你的邏輯是正確的,但腳本有點複雜簡單地解釋。我會按照這個邏輯工作。謝謝 – Henrique 2012-02-17 21:48:10