|
主题: 关于查询的问题
|
 咬一口
职务:普通成员
等级:1
金币:0.0
发贴:107
注册:2002/1/20 21:07:01
|
#12002/5/26 11:19:01
帮我考虑一个问题吧! 现在要做个图书的查询系统,分别根据书名.图书的简介.内容来查询.但是输入数据就是一个输入口.要求系统根据一个分别进行查询,得出结论在一个页面显示.
我有俩个想法但是都觉得不好.不过还是说出来你听听吧! 1. 用sql语句进行查询. select * from book where book_name like '%##%'or book_intro like '%##%' or book_content like '%##%' 不过觉得这样会丢失一部分查询的结果. 2 分别定义3个数据集合来对应3个查询.这个方法应该最安全.也最全面.可以会出现在页面上有很多相同的数据出现.这样不太好. 你帮我想想吧!!!! 多谢了
|
 5D荣誉斑竹
职务:普通成员
等级:2
金币:10.0
发贴:710
注册:2001/10/24 18:34:42
|
#22002/5/26 11:48:41
首先,你的查询的形式是什么? 1、书名 AND 图书的简介 AND 内容。如果是这个形式的话,简单了,可以象这个样子: select * from book where book_name like '%book_书名%' AND book_content like '%book_内容%' AND book_say like '%book_简介%' 2、有选择的形式,如:书名 OR 图书的简介 OR 内容。以上SQL语句可改为OR来连接 3、比较复杂的选择。可以用3个checkbox,分别根据checkbox的值来判断用那句SQL,如:
if Request("checkbox")="1" then
sql1.........
if Request("checkbox")="2" then
sql2........
if Request("checkbox")="3" then
sql3.....
|
 咬一口
职务:普通成员
等级:1
金币:0.0
发贴:107
注册:2002/1/20 21:07:01
|
#32002/5/26 12:20:00
我的查询就是一个输入口.表示关键字.不让用户去选择到底是用名字.还是别的什么的.而查询的时候是根据给的关键字.在名字.简介.内容中都进行查询.选择符合的条件.所以我说第2个方法是查询的最全面的.问题就是出在容易出现重复的查询结果.
那个and的逻辑是要求结果都为真的时候才成立吧??好像不行啊.
|
 5D荣誉斑竹
职务:普通成员
等级:2
金币:10.0
发贴:710
注册:2001/10/24 18:34:42
|
#42002/5/26 12:31:27
我以为你要用3个输入口呢?那还是用: select * from book where book_name like '%book%' OR book_content like '%book%' OR book_say like '%book%' 这个好了!但是这么做很不专业呀!如果你的书名、图书的简介、内容中都有被查询的关键字,那就不妙了!
还是建议用3个输入框,这样查询比较准确
|
 咬一口
职务:普通成员
等级:1
金币:0.0
发贴:107
注册:2002/1/20 21:07:01
|
#52002/5/26 12:49:06
多谢斑竹了!没想到你的工作效那么高!这么快就有回复了! select * from book where book_name like '%book%' OR book_content like '%book%' OR book_say like '%book%' 这样的话or是当有一个条件满足的时候就不会向下进行了啊!那样的如果书名、图书的简介、内容中都有被查询的关键字的话!就会有一部分的查询被丢失了.
所以我还是喜欢用第2种.可是重复显示的问题还是没有办法解决啊!这个帮我想想.
这个查询主要是用在首页.做个简单的查询.以后会有复杂的查询的
|
 udfans
职务:普通成员
等级:2
金币:0.0
发贴:417
注册:2002/2/2 12:32:55
|
#62002/5/26 15:55:24
你可以在 select 后面加上一个“distinct"即可去掉重复的记录!
|
 咬一口
职务:普通成员
等级:1
金币:0.0
发贴:107
注册:2002/1/20 21:07:01
|
#72002/5/26 16:15:14
帅哥.多谢了!!
能不能给语句的格式.
|