编写这个MySQL查询的更干净的方法?

编写这个MySQL查询的更干净的方法?,mysql,Mysql,这是我当前的查询: SELECT * FROM users WHERE blah blah... AND users.who = '1' AND users.seeking = '2' OR users.seeking = '5' OR users.seeking = '8' OR users.seeking = '9' OR users.seeking = '11' OR users.seeking = '13' OR users.seeking = '14' OR users

这是我当前的查询:

SELECT * FROM users
WHERE blah blah...
AND users.who = '1'

AND users.seeking = '2' 
OR users.seeking = '5' 
OR users.seeking = '8' 
OR users.seeking = '9' 
OR users.seeking = '11' 
OR users.seeking = '13' 
OR users.seeking = '14' 
OR users.seeking = '15' 

AND users.account_status = '1';

如您所见,搜索字段可以有多个值。有没有更好的方法来指定该字段的所有可接受值,以便由我的select语句返回,而不是写这么多OR?

在您的查询中,它将返回
users.seeking='9'
所在的行,即使
users.who
不是
'1'
(类似地,
用户。帐户状态
可能不是
'1'
)。在中使用
的答案将改变这一点(我认为这是一件好事,但我只是想提一下)。离题,但为什么你的所有数字都用引号引起来?例如,为什么是字符串?另外,可能值得指出的是,这改变了查询--但几乎可以肯定是以某种方式修复了一个错误。:-@T.J.Crowder是的,这是一个错误,谢谢你指出。
SELECT * FROM users
WHERE blah blah...
AND users.who = '1'

AND users.seeking IN('2','5','8','9','11','13','14','15') 
AND users.account_status = '1';