2013-02-23 69 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逗號分隔值的循環。