3
タイトルとして、必要なタグまたは拒否されたタグによる検索を実装したいとしています。要するにTagsearch by Term
:
あなたが "サッカー" のような用語で検索
クエリが
SELECT
p.*
FROM
posts p
WHERE
p.title LIKE '%football%'
十分なフェアを行きます。
は今、あなたはタグ「勝利」を持つすべての投稿をしたい、tag_id
は、検索フォームで提供される「新」と「ローカル」
SELECT DISTINCT
p.*
FROM
posts p
INNER JOIN posts_tags pt
ON pt.post_id = p.id
WHERE
(
pt.tag_id IN (1,2,3)
)
AND p.title LIKE "%SearchTerm%"
それとも、「テニスに関連する何かを見つけるためにしたくありません「
SELECT DISTINCT
p.*
FROM
posts p
INNER JOIN posts_tags pt
ON pt.post_id = p.id
WHERE
(
pt.tag_id IN (pt.tag_id) <- Workarround for "in everything"
AND pt.tag_id NOT IN (4)
)
AND p.title LIKE '%SearchTerm%'
各クエリはIN/NOT IN
部分を無視しているようだと、私はいつも同じ結果セットを得るため、単にtitle LIKE
部品のために行きます。
私は括弧でarroundを演奏し、まずタグを集約しようとしました。
私は試みますが、4はまた、4,5,6,7、xのような複数の引数になる可能性があります。 – Soundz