sql 查询语句in相关问题

mysite365 2009-02-19 10:11:19
我想要种效果:

有5个值,查找数据库相对应得列表,符合3个以上,就可以匹配

接着把能够匹配得记录显示出来,而且可以分页显示。。。。。

例如:
表a id name a b c d e f

值 1 小小 1 10 2 6 4 9
2 大大 1 5 3 5 5 5
3 画画 2 10 3 6 11 10

首先。 取得外部的值 1 10 3 6 5 9

现在拿得到的值,去表a里去查询。 符合3 项以上的记录id分别为2,3,

然后把2,3所在的输出,并且输出的记录能够有分页功能


回答好的继续加分,急用........

...全文
136 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
mysite365 2009-02-19
  • 打赏
  • 举报
回复
结贴了,谢谢大家了
WWWWA 2009-02-19
  • 打赏
  • 举报
回复
呵呵,后面忘了&
mysite365 2009-02-19
  • 打赏
  • 举报
回复
sql_list="select * from [god_blood] where (a="&rs_comp("a")&")+ (b="&rs_comp("b")&")+ (c="&rs_comp("c")&")+(d="&rs_comp("d")&")+(e="&rs_comp("e")&")+(f="&rs_comp("f")&")<=-3 and id<>"&comp_id&" "

对了。。。忘了&。。。。。。。。。
mysite365 2009-02-19
  • 打赏
  • 举报
回复

sql_list="select * from [god_blood] where (a="rs_comp("a")")+ (b="rs_comp("b")")+ (c="rs_comp("c")")+(d="rs_comp("d")")+(e="rs_comp("e")")+(f="rs_comp("f")")<=-3 and id<>"comp_id" "


提示错误:
错误类型:
Microsoft VBScript 编译器错误 (0x800A0401)
语句未结束
/bl_match/admin/compinfo.asp, line 32, column 46
sql_list="select * from [god_blood] where (a="rs_comp("a")")+ (b="rs_comp("b")")+ (c="rs_comp("c")")+(d="rs_comp("d")")+(e="rs_comp("e")")+(f="rs_comp("f")")<=-3 and id<>"comp_id" "
---------------------------------------------^
WWWWA 2009-02-19
  • 打赏
  • 举报
回复
sql_list="select * from god_blood where(a=" & rs_comp("a")")+ (b=" & rs_comp("b")")+ (c=" & rs_comp("c")")+(d=" & rs_comp("d")")+(e=" & rs_comp("e")")+(f=" & rs_comp("f")")<=-3 "
假设A-F为数字型
ACMAIN_CHM 2009-02-19
  • 打赏
  • 举报
回复
sql_list="select * from god_blood where(a=" _
& rs_comp("a") & ")+ (b=" _
& rs_comp("b") & ")+ (c=" _
& rs_comp("c") & ")+(d=" _
& rs_comp("d") & ")+(e=" _
& rs_comp("e") & ")+(f=" _
& rs_comp("f") & ")<=-3 "


mysite365 2009-02-19
  • 打赏
  • 举报
回复
rs_comp("a")等等是从数据库里先得到值
mysite365 2009-02-19
  • 打赏
  • 举报
回复

Set rslist=Server.CreateObject("adodb.recordset")
sql_list="select * from god_blood where(a="rs_comp("a")")+ (b="rs_comp("b")")+ (c="rs_comp("c")")+(d="rs_comp("d")")+(e="rs_comp("e")")+(f="rs_comp("f")")<=-3 "
rslist.open sql_list,conn,1,1

ACMAIN_CHM 2009-02-19
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 mysite365 的回复:]
<%
dim canshu1,canshu2,canshu3,canshu4,canshu5,canshu6
SELECT *
FROM try
WHERE FROM try
WHERE (a="canshu1")+
(b="canshu2")+
(c="canshu3")+(d="canshu4")+(e="canshu5")+(f="canshu6")
<=-3


%>

这样写就可以了吧??
[/Quote]

ASP 不是这么个语法。建议看一下VB的教程。


QQ群 48866293 / 12035577 / 7440532 / 13666209
https://forum.csdn.net/BList/OtherDatabase .
http://www.accessbbs.cn/bbs/index.php .
http://www.accessoft.com/bbs/index.asp .
http://www.access-programmers.co.uk/forums .
http://www.office-cn.net .
.
http://www.office-cn.net/home/space.php?uid=141646 .
wwwwb 2009-02-19
  • 打赏
  • 举报
回复
测试一下,应该可以
mysite365 2009-02-19
  • 打赏
  • 举报
回复
<%
dim canshu1,canshu2,canshu3,canshu4,canshu5,canshu6
SELECT *
FROM try
WHERE FROM try
WHERE (a="canshu1")+
(b="canshu2")+
(c="canshu3")+(d="canshu4")+(e="canshu5")+(f="canshu6")
<=-3


%>

这样写就可以了吧??
ACMAIN_CHM 2009-02-19
  • 打赏
  • 举报
回复
mysite365 2009-02-19
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 wwwwb 的回复:]
引用 13 楼 mysite365 的回复:
符合3 项以上的记录id分别为1,2

大家对不起了,看错了

>=3 3条记录 ID=1、2、3
>3 1条记录 ID=1
[/Quote]


晕了,我眼都看花了,Id为1,2,3 都符合。。。。。。。。。。。
wwwwb 2009-02-19
  • 打赏
  • 举报
回复
呵呵,ACCESS条件为TRUE时返回-1,FLASE时曾0 OR 1
mysite365 2009-02-19
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 wwwwb 的回复:]
or
SELECT *
FROM try
WHERE FROM try
WHERE (a=1)+
(b=10)+
(c=3)+(d=6)+(e=5)+(f=9)
<=-3
[/Quote]


为什么要用<=-3,不应该是>=3吗??
wwwwb 2009-02-19
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 mysite365 的回复:]
符合3 项以上的记录id分别为1,2

大家对不起了,看错了
[/Quote]
>=3 3条记录 ID=1、2、3
>3 1条记录 ID=1
wwwwb 2009-02-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 mysite365 的回复:]
引用 9 楼 wwwwb 的回复:
引用 5 楼 mysite365 的回复:
还有好像你理解错了

1    10  3  6    5    9


1和a列比较
10和b列比较
3和c列比较
6和d列比较
5和e列比较
9和f列比较




SELECT *
FROM try
WHERE iif(a=1,1,0)+
iif(b=10,1,0)+
iif(c=3,1,0)+iif(d=6,1,0)+iif(e=5,1,0)+iif(f=9,1,0)
>=3


结果也不正确啊



SELECT *
FROM try
WHERE iif(a=1,1,0)+
iif(b=10,1,0)+
iif(c=3,1,0)+i…
[/Quote]
第一条记录满足条件的字段数为4
mysite365 2009-02-19
  • 打赏
  • 举报
回复
符合3 项以上的记录id分别为1,2

大家对不起了,看错了
wwwwb 2009-02-19
  • 打赏
  • 举报
回复
or
SELECT *
FROM try
WHERE FROM try
WHERE (a=1)+
(b=10)+
(c=3)+(d=6)+(e=5)+(f=9)
<=-3
mysite365 2009-02-19
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wwwwb 的回复:]
引用 5 楼 mysite365 的回复:
还有好像你理解错了

1 10 3 6 5 9


1和a列比较
10和b列比较
3和c列比较
6和d列比较
5和e列比较
9和f列比较




SELECT *
FROM try
WHERE iif(a=1,1,0)+
iif(b=10,1,0)+
iif(c=3,1,0)+iif(d=6,1,0)+iif(e=5,1,0)+iif(f=9,1,0)
>=3


结果也不正确啊
[/Quote]


SELECT *
FROM try
WHERE iif(a=1,1,0)+
iif(b=10,1,0)+
iif(c=3,1,0)+iif(d=6,1,0)+iif(e=5,1,0)+iif(f=9,1,0)
>=3

我感觉可以,主要高级查询语句不懂、、、
加载更多回复(11)

7,714

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧