0

私はさまざまな記事を持つウェブサイトを持っています。データベース構造は次のようになります。

記事 ID | 記事の場所 | 記事カテゴリ | 記事トピック

列の実際のテキスト文字列は別のテーブルにあるため、すべての列に数値 (整数) が入力されます。

関連する投稿を見つけたい、つまり、ユーザーが ArticleLocation = 1、ArticleCategory = 3、ArticleTopic = 2 の記事を読んだ場合、同じ列の値を最も多く共有している上位 5 つの記事を見つけたいと考えています。

これを行う方法のアイデアはありますか?

前もって感謝します

4

1 に答える 1

0

テーブルの名前が であると仮定してArticleTable、次のことを試してください。

SELECT *, (
CASE ArticleLocation WHEN :loc THEN 1 ELSE 0 END +
CASE ArticleTopic WHEN :topic THEN 1 ELSE 0 END +
CASE ArticleCategory WHEN :cat THEN 1 ELSE 0 END) AS Relevance
FROM ArticleTable 
ORDER BY Relevance DESC
LIMIT 5

:loc、関連する値:topic:cat設定します。

于 2013-03-28T09:22:01.677 に答える