0

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

我目前有这个查询

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= 越野摩托车无关

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

也可以像这样的 youtube 进行相关搜索吗?

两个主题 topic1 -> 关键词 motocross, 1 topic2 -> 关键词 motocross, 2

例如 search.asp?ID=motocross 1

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

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

4

3 回答 3

0

您需要使用“OR”进行查询 ....

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

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

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

于 2013-02-25T11:31:05.587 回答
0

首先,您的查询字符串不应包含空格。使用不同的分隔符。A + 是一个很好的使用。因此,您的 URL 将类似于:search.asp?ID=motocross+1。

这会将您的关键字拆分为一个数组,然后一次取一个来构建 and 子句。替换删除了第一个 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"
于 2013-02-23T19:54:31.413 回答
0

你试过用 LIKE 吗?

"从表中选择 * 字段 LIKE '%" & 值 & "%'"

于 2013-02-23T20:01:53.007 回答