2011-09-26 46 views
1

下面是該查詢我MySQL的縮短查詢 - 選擇具有複式或選擇

SELECT FB_TEXT 
FROM `FB_DATA` 
WHERE `FB_MODELID` = "'.$sku_modelid.'" AND FB_TYPEID = 1 

我想要做的就是讓多個FB_TYPEID的這樣的查詢應該是這樣的:

AND FB_TYPEID = 1,2,7 

1, 2和7是我需要允許的數字。我怎麼能寫,沒有做很長的查詢說:

SELECT FB_TEXT 
FROM `FB_DATA` 
WHERE `FB_MODELID` = "'.$sku_modelid.'" AND FB_TYPEID = 1 OR `FB_MODELID` = "'.$sku_modelid.'" AND FB_TYPEID = 2 OR `FB_MODELID` = "'.$sku_modelid.'" AND FB_TYPEID = 7 
+0

'IN()'子句是你在這裏需要的。 'WHERE FB_MODELID IN(1,2,7)' –

回答

3

使用IN,而不是=

WHERE `FB_MODELID` = "'.$sku_modelid.'" AND FB_TYPEID IN (1,2,7) 
+0

完美。謝謝!我知道必須有一種方式就是不確定它是什麼。 – Drew

0

使用IN()

WHERE `FB_MODELID` = ? AND FB_TYPEID IN (1,2,7) 

(PS使用佔位符在查詢中防止SQL注入攻擊)

1

IN()運算符是正確的答案,但如果你不想(或不能)使用IN(),你不需要重複模型ID。該查詢等同於IN()解決方案。

 
SELECT FB_TEXT 
FROM `FB_DATA` 
WHERE `FB_MODELID` = "'.$sku_modelid.'" AND (FB_TYPEID = 1 OR FB_TYPEID = 2 OR FB_TYPEID = 7)