SQL查询中IN语句条件为一个数组如何进行查询?(ASP提示类型不匹配)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL查询中IN语句条件为一个数组如何进行查询?(ASP提示类型不匹配)相关的知识,希望对你有一定的参考价值。
这个问题是关于一个ASP程序中收藏夹功能的SQL语句:关联到两个数据表,详细如下 person表字段 id pname realname job …… 1 per1 aname job1 2 per2 bname job2 3 per3 cname job3 4 per4 dname job4 5 per5 ename job5 6 per6 fname job6 …… fav表字段 id perid pname saver …… 1 1 per1 com1 2 4 per4 com1 3 5 per5 com1 4 1 per1 com2 5 5 per5 com2 6 2 per2 com3 ……person表为个人会员表,fav表为企业会员收藏的个人会员信息表其中fav表中的perid为收藏的个人会员id(即person表中的id字段)现在要查询的条件为:查询收藏者(saver字段)为com1收藏的个人会员信息我的查询方式如下:查询收藏者(saver字段)为com1收藏的个人会员的SQL语句为:SQL1="select * from fav where saver="com1""接下来要根据查询出来的perid从person表中查询满足条件的记录:SQL2="select * from person where id in (RS.Fields("perid"))"问题出现了,从fav表可以看出com1收藏的会员id为1、4、5,SQL1语句是没有问题的,可是得出的SQL2语句结果只有id为“1”的一条记录,id为4和5的完全没有查询。我接着用Split函数将得到的perid字段转换为字符串类型favid=Split(RS.Fields("perid"),",")SQL2="select * from person where id in("&favid&")"可是提示数据类型不匹配,绝望了……最后又上网查了下用数组的办法来执行,方法如下:favid=array(SQL1,2)SQL2="select * from person where id in("&favid&")"我的老天啊,还是提示数据类型不匹配了,彻底绝望了……求高手给出解决办法,最好能把两个SQL语句合起来执行,分开的也行,谢谢了!
用 SQL语句嵌套的方式就好了。SELECT * FROM person WHERE id IN (SELECT perid FROM fav WHEREsaver="com1") 参考技术A 楼主说的办法完全不太理解,因为偶是自学的SQL。像楼主这种查询,碰到过很多,用非常简单的SELECT 嵌套就可以了啊。select * from person where id in (select perid from fav where saver=com1),只是这样写的前提是两个表都在同一个数据库下。仅供参考,等待其他高手出招,共同学习,呵呵。
以上是关于SQL查询中IN语句条件为一个数组如何进行查询?(ASP提示类型不匹配)的主要内容,如果未能解决你的问题,请参考以下文章
语言C#,winform,数据库为access. 如何把int数组作为sql语句中的查询条件?