最初のテーブル: 投稿
ID post unix_timestamp upvotes
-----------------------------------
118 mmmm 1360662045 4
119 kdkdk 1360662074 2
120 dkcjf 1360662012 3
121 dkcmv 1360662025 1
および他のいくつかのフィールド
2 番目のテーブル: post_tags
ID post_id tagname
-----------------------
1 118 #test
2 118 #iseeyou
3 119 #sleepy
私が実行したMYSQLクエリ。
SELECT p.id, p.post, p.timestampfull FROM posts p,
post_tags pt WHERE pt.tagname IN ('#test','#iseeyou')
AND p.post LIKE '%united states%'
AND p.id = pt.post_id
GROUP BY p.id
HAVING COUNT( pt.tagname ) = 2
ORDER BY p.upvotes DESC , p.unix_timestamp DESC
私の検索アプリケーションでは、最新の行をフェッチしようとしていますp.unix_timestamp
。そのため、ハッシュタグまたはプレーンテキスト、またはその両方を含むことができる検索クエリに基づいて、賛成票によって降順で並べ替えられます。
そのため、ユーザーが を検索すると#test #iseeyou united states
、タグと、タイムスタンプと賛成票で並べられたテキスト United States の両方を含む投稿が返されます。
また、最新の投稿よりも賛成票の多い投稿を優先したいと思います。
私のクエリが正しいかどうか教えてください。