mysql'WHERE'与500'OR'?

时间:2010-02-17 14:47:28

标签: php mysql

是否可以使用带有大量OR的WHERE语句?我想最多可能是500。

我正在处理一个Facebook应用程序。可以理解(但令人讨厌)他们不允许应用程序开发人员存储朋友关系。因此,我不能做一个明智的JOIN tblfriend或类似的事情。

要获得朋友列表,您可以使用FQL查询Facebook ...这将返回一个facebook用户ID数组。我的想法是找到一个用户最近的朋友,我可以运行这样的查询:

'SELECT * FROM user WHERE fb_id = ' . implode('OR fb_id = ', $friend_array) . ' ORDER BY created LIMIT 0,1'; 

有更好的方法吗?

3 个答案:

答案 0 :(得分:5)

您可以使用IN子句

答案 1 :(得分:2)

正如Marek Karbarz所说,使用IN:

'SELECT * FROM user WHERE fb_id IN (' . implode(',', $friend_array) . ') ORDER BY created LIMIT 0,1'; 

答案 2 :(得分:1)

使用IN构造。

..WHERE fb_id IN (1,2,3)

相同
..WHERE fb_id = 1 OR fb_id = 2 OR fb_id = 3