关于数据查询的问题

wzd0210 2004-08-09 03:44:36
如视图:
marketID title content productKindId upTime
33 好呀 好呀 1,2,13 2004-5-15
34 好呀 好呀 10 2004-5-15
34 好呀 好呀 11,2,25 2004-5-15
…… …… …… …… ……

这样的话,在用productKindID搜索的时候,只能用Like进行比较,但是这样的话就会把一些多余的记录搜索出来,
如:..........where productKindID '%1%' ...........
就会把productKindID有1或13,10的记录搜索出来!如上面的三条记录都会出来,而我的目地只要显示第一条记录!
那位有什么好的方法,那解决这个问题?
...全文
125 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzd0210 2004-08-22
  • 打赏
  • 举报
回复
顶一下.
zltostem 2004-08-21
  • 打赏
  • 举报
回复
一页多少条,如果共15条,一页显示10条,
还是会有5条显示在下一页的~~~
wzd0210 2004-08-21
  • 打赏
  • 举报
回复
是一样的,
问题可能是这样:

假如我要显示10条记录,但是数据库里要先读出15条记录,然后有10条符合条件才显示出来。
而下次翻页时,可能又是从数据库里的第十一条记录相比,符合条件的显示,这样子就在后一页可能显示前一页的内容了。

假如是用"select * .........where ......"这样先判断在分页的话,肯定是同步的。
而我的只能先全部读出来,在比较,在显示出来!

如:
var sql="select * from viewMarketCond";

oRs.Open(sql,oConn,3,3);

oRs.pagesize=10
oRs.absolutepage=pageno;
if(!oRs.EOF)
{
while(!oRs.EOF&&nn<=10)//每页显示20条记录
{
var pKind1=""+oRs("productKind");
var aa=pKind1.split(","); //按","把不同的产品类别放入数组中
for (var n=0;n<aa.length;n++)
{
if (aa[n]==request("action") //判断条件
{
显示记录
}
}
oRs.MoveNext();
}
}

错误:第一页显示的记录,有一部分在下一页也显示出来了!
jervis82 2004-08-21
  • 打赏
  • 举报
回复
如果你用的是同一条查询语句应该不会出现这一种错误吧。再看看你自己的sql语句。
wzd0210 2004-08-21
  • 打赏
  • 举报
回复
我使用了,在分页导航栏上可以正确实现。

但是在内容显示部分就出现了错了:

错误就是:第一页显示的记录,有一部分在下一页也显示出来了!

如何正确实现?
wzd0210 2004-08-21
  • 打赏
  • 举报
回复
就是每页显示10条符合条件的记录。


但我的先从数据库里读出所有的记录,然后比较,(可能有15条记录有10条满足条件),就只输出符合条件的记录。

但用(1,2,3,4,5)这样的导航,点击“2”的时候,游标是从数据库的第11条记录开始输出,在进行比较,这样的话,数据库的第11--15条记录和判断条件在比较,就有一次输出
所以,前面输出的记录在第二页可能有显示出来了!
ycted 2004-08-09
  • 打赏
  • 举报
回复
用上面就可以了.你把每一条的productKindId取出来,用split生成一个数组,然后一个个比较.
flyskywlh 2004-08-09
  • 打赏
  • 举报
回复
aa=split(rs("productKindId"),",")
for i=0 to ubound(aa)
if aa(i)=1 then
response.write("这条就是你要找的了.")
end if
next

原理:先取出productKindId的值,把每个,号分开的值存到数组里.
再分别取出与1比较
wzd0210 2004-08-09
  • 打赏
  • 举报
回复
大家来帮忙呀?
wzd0210 2004-08-09
  • 打赏
  • 举报
回复
但是我是需要把符合务件的所有记录都显示出来!

我知道像like对文本进行比较的话可以很精确的显示,但像这样的数字就不能很正确的显示了

该如何解决?
flyskywlh 2004-08-09
  • 打赏
  • 举报
回复
select top 1 * from table where where productKindID '%1%'

只找出符合条件的第一条记录
skyboy0720 2004-08-09
  • 打赏
  • 举报
回复
like '%1,%'不就行了?!

28,409

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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