実際にはまだ提供するコードはありません..しかし、操作しようとしているデータを提供できます。
タグ/キーワードのセットを使用しています。キーワードは、「related_id」列を介して別のキーワードに関連付けることができます。
したがって、私のテーブルは次のようになります。
キーワード_tbl:
keyword_id | keyword | related_id
この例では、テーブルに次のエントリが入力されているとします。
Entry 1:
keyword_id : 1
keyword: Marathons
related_id: 0
Entry 2:
keyword_id : 2
keyword: Boston
related_id: 1
ご覧のとおり、ボストンのこのエントリは、 related_id を介して Marathons に関連付けられています。
ユーザーに検索機能を提供することに取り組んでいます。個々の用語を検索する場合、それは簡単なことであり、問題ではありません。しかし、彼らが「ボストン マラソン」を検索すると、クエリに問題が生じます。
SELECT * FROM keyword WHERE keyword LIKE "%boston%" OR keyword LIKE "%marathon%"
この最初のクエリの後、結果を比較したいと思います。これは、上で詳述した 2 つのエントリになります。
他に関連する用語のみを返したいと思います。この場合、ボストンは「最小の」公分母なので、それを返したいと思います。
想像してみてください: マラソン -> ボストン
これは単一のクエリで実行できますか?
ありがとう!