2011-09-26 47 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)