2017-04-14 49 views
1

我是相当新的关于查询,我想知道是否有一个更容易的解决方案,我正在处理查询。高效的MySQL查询方法,以避免多个OR语句

比如我想其中x是5,7,9,11,13,15和17

我有象下面这样的查询数据;

SELECT * FROM abc WHERE x = 5 or x = 7 or x = 9 or x = 11 or x = 13 or x = 15 or x = 17; 

可以使用此查询还是有其他更简单高效的解决方案?

EDIT

是否影响演出]当我用x = [5,7,8,11,13,15,17]对X = [5,11,7,15,8, 17,13]

X是另一个类别的ID,例如。

回答

3

这是较短,但同样执行

SELECT * FROM abc WHERE x in (5,7,9,11,13,15,17) 

但要记住,如果in子句中的一个条目是null则返回FALSE。

+0

感谢您的回答!我将搜索基准测试并自己尝试。顺便说一下,如果我想让输出变成随机而不是最近到老,你会建议我什么? –

+2

'rand by()' –