MySQL使用ID列表选择的最佳方式

时间:2009-07-31 20:13:36

标签: mysql

通过webservice,我的应用程序会收到一个标识符列表。 有了这个列表,我必须查找一个字段,每个标识符一个。 如果该字段不存在,则该值应为null(必须显示)。

我想知道什么是最好的方法。首先,我认为最好创建一个包含id的临时表,然后将其连接到包含数据的表,但如果我是正确的,则每个标识符至少需要1个查询才能将其插入临时表中。 在这种情况下,似乎我也可以遍历我的应用程序中的标识符列表并通过1查询数据库1.这是正确的吗? 您可以建议哪种方法?

问候,

科恩

2 个答案:

答案 0 :(得分:21)

使用SELECT WHERE IN()语法获取包含所需数据的结果集,然后在代码中迭代它。这样,您只需查询一次数据库,只获取所需信息。

答案 1 :(得分:0)

显示空值是技巧,您需要将表连接到自身,因此每个记录有两个索引查找。只对每个标识符进行一对一查询只需要一次索引查找。

实际上,它的速度不会慢两倍,因为在执行第二次查找时,标识符将位于密钥缓存中。

另一种选择是使用输入标识符渲染输出,并使用之前建议的“IN”。空记录不会出现在查询输出中,但是这样就可以了,因为你知道请求了什么。