客户端是c#2008,数据库是sql server2005
如何根据KEY同时查询多条记录?key之间没有规律,随即的,key可以理解为自增ID,value是对应的那条记录,一次提取key的数量不会超过50个,但数据库中记录很多,也就是分页展现。
如key(100,201,4001,80,...10)
先在后台程序中将key组装为串('100','201','4001','80',...'10')以此为参数组装sql.
select key, value from table where key in ('100','201','4001','80',...'10');
######其他你那in不会有问题的, 才50个值, 具体讨论见http://www.oschina.net/question/175048_26682###### @lucika : 对于oracle10g in仍然走索引,有些时候,写in比写exists还快,sql server不是很清楚, 如果是在不行就循环拼OR吧, 50个条件也不是很长. 如果你可以用过程, 创建一个临时表, 只有一个字段, 50个ID插入进去, 以此左联接吧###### @scl33 : 实际情况是一次查询相关于查询了N次,分别对每一个key值进行了一次查询!从表扫描的角度看,一个人访问=N个人访问。这种方式被领导否定了。构建临时表,进行表关联,领导也不是非常赞同。###### @lucika : 是的, 不过考虑到你说的不超过50, 那应该没关系的###### @scl33 : 查阅了一下,IN这种方式性能较差,需N次扫描表。如果能一次效果更佳版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。