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のような関連検索を行うことは可能ですか?

2 つのトピック topic1 -> キーワード モトクロス、1 topic2 -> キーワード モトクロス、2

例 search.asp?ID=モトクロス 1

トピック 1 は、クエリ内の両方の単語が「motocross」と「1」に一致するため、最初に表示されますが、トピック 2 にはモトクロスしかありません。

キーワードの一致をカウントするようにこれを行うことは可能ですか

4

3 に答える 3

0

「OR」を使用してクエリを作成する必要があります...。

2つのキーワード(車、バス)があるので、クエリは次のようになります。

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

これは静的クエリの単なる例であり、カンマ区切りの値のループを使用して実行時に実行できます。

于 2013-02-25T11:31:05.587 に答える
0

まず、クエリ文字列にスペースを含めないでください。別の区切り文字を使用してください。+ は使用するのに適したものです。したがって、URL は次のようになります: search.asp?ID=motocross+1 代わりに。

これにより、キーワードが配列に分割され、一度に 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を使ってみましたか??

"select * from table where field LIKE '%" & value & "%'"

于 2013-02-23T20:01:53.007 に答える