asp + msaccess,比较表中的关键字

时间:2013-02-23 15:08:38

标签: ms-access asp-classic

希望有人这样做了,所以有一些代码可以帮助我

我目前有这个查询

ForumID = request("ID") 
QID = ForumID

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

我所拥有的是包含主题的表格主题。我添加了一个字段关键字,其中包含关键字,例如“motocross,mx,motox”

我如何查询数据库,例如任何包含关键字motocross的表?

此外,如何使用多个单词

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

如果例如search.asp?ID = motocross无关

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

还有可能像你这样的管道进行相关搜索吗?

两个主题 topic1 - >关键词摩托车越野赛,1 topic2 - >关键词摩托车越野赛,2

例如search.asp?ID = motocross 1

主题1将首先显示查询中的两个单词匹配“motocross”和“1”,而topic2只有motocross

是否可以这样做,以便计算关键字匹配

3 个答案:

答案 0 :(得分:0)

首先,您的查询字符串不应包含空格。使用不同的分隔符。 A +是一个很好用的。所以你的URL看起来像: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"

答案 1 :(得分:0)

你尝试过使用LIKE吗?

“select * from table where field LIKE'%”&价值与价值“%'”

答案 2 :(得分:0)

您需要使用“或”....

进行查询

我有2个关键字(汽车,公共汽车)所以我的查询就像

DB.CreateQueryDef QID,“SELECT * FROM Topic WHERE(keywords ='car'OR keywords ='Bus')ORDER BY LastPost DESC”

这只是静态查询的示例,您可以使用逗号分隔值循环运行时间。