2013-02-23 68 views
0

希望有人已经这样做了所以有一点的代码,可以帮助我ASP + MSACCESS,在表中比较关键字

我现在有这个疑问

ForumID = request("ID") 
QID = ForumID 

DB.CreateQueryDef QID, "SELECT * FROM Topic WHERE Keywords = '" & QID & "' ORDER BY LastPost DESC" 

我有一个表的话题其中包含的主题。我添加了一个字段关键字,它将具有关键字,例如“motocross,mx,motox”

如何查询数据库,例如包含关键字摩托车越野赛的任何表?

还怎么能这样使用多个单词

eg 
two topics 
topic1 -> Keywords motocross, mx 
topic2 -> Keywords motocross, dance 

,例如如果search.asp?ID =越野赛无关

它将搜索数据库两个,如获得其中的关键字字段包含eith的所有主题查询中的2个单词,或4个单词或更多

也可以像这样的youtub做相关搜索吗?

两个主题 TOPIC1 - >关键字摩托车越野赛,1 标题2 - >关键字摩托车越野赛,2

例如search.asp ID = 1摩托车越野赛

主题1首先会显示在查询匹配这两个词? “摩托车越野赛”和“1”,而标题2只越野

是有可能做到这一点,因此会算的关键字匹配

回答

0

首先,你的查询字符串不应包含空格。使用不同的分隔符。 A +是一个很好用的。因此,您的网址将如下所示:search.asp?ID = motocross + 1。

这会将你的kewwords分割成一个数组,然后一次一个地构建一个和子句。替换删除第一个AND。

SQL = "SELECT * FROM Topic WHERE" 
ForumID = request("ID") 
QID = Split(ForumID, "+") 
For Each KW in QID 
    SQL = SQL & "AND Keywords Like '*" & QID & "*' " 
Next 
SQL = Replace(SQl, "WHEREAND", "WHERE") 
SQL = SQL & " ORDER BY LastPost DESC" 
+0

数据库查询将如何查找此内容? 我有此大气压其原位缺口工作,但它不匹配最高审计机关像 ' “SQL = SQL& ”和关键字“ line' 'SQL = ”SELECT * FROM主题WHERE“ ForumID =请求(” ID“) QID = Split(ForumID,“+”) 对于QID中的每个KW SQL = SQL&“AND关键字='”&QID&“'” Next SQL =替换(SQL,“WHEREAND”,“WHERE”) SQL = SQL& “ORDER BY LastPost DESC” “创建的QueryDef DB.CreateQueryDef QID,SQL' – mxadam 2013-02-23 20:48:02

+0

我编辑的第一个代码。现在就来试试。 – 2013-02-24 01:00:48

0

你试过用LIKE ??

“select * from表where字段LIKE '%” &值& “%'”

+0

嘿,我一直在努力了几个小时和浩urs在类似的声明,我尝试了几乎所有的组合,我可以找到/想到哪里没有工作 – mxadam 2013-02-23 20:46:52

+0

我有一个简单的搜索工作,如果搜索短语是“乌拉圭房屋”脚本分裂的话,我做了SQL像这样: “select * from TABLE where fields like'%casas%'and FIELD like'%en%'and FIELD like'%uruguay%'” – 2013-02-24 15:12:55

0

你需要让你的查询用 “OR” ....

我有2个关键字(车,公交车),所以我的查询会像

DB.CreateQueryDef QID, “SELECT * FROM主题WHERE(关键词= '汽车' 或关键字= '公车')ORDER BY LastPost DESC”

这仅仅是例子作为静态查询,你可以让它运行时间无线th逗号分隔值的循环。