画像とタグを含むテーブルがあります ( と呼ばれますtbl_images
)
image_file image_tags
---------- ----------------------------
test.png tag1 another_tag tag2
hi.jpg tag9 tag1 another_tag qwerty
次のようにするにはどうすればよいですか。
- 「別」を検索しても何も返されない
- 「tag1」を検索すると、test.png 行が返されます
- 「tag1 another_tag」を検索すると、test.png 行が返されます
- 「qwerty tag2」を検索しても何も返されない
?
同様に、完全なタグ名を使用して検索する機能と、複数のタグが同じ行の同じ image_tags フィールドにある場合に同時に検索する機能。ノート:-
- 1 つのフィールド内のみを検索しています
- PHP検索入力(で取得
$_GET['search_terms']
)で行われます LIKE '%tag9%
tag9 は、 などのより大きなタグに表示される可能性があるため、実行できません。前述のとおり、正確なタグの一致Atag98
のみが必要です。- image_tags フィールドの先頭に tag9 が表示される可能性があるため (スペースがないため、一致しない可能性があります)、できません
LIKE ' tag9 '
(前後のスペースに注意してください)。 LIKE 'tag9 another_tag'
another_tag が tag9 の後に来るかどうかわからないのでできません。同様にLIKE 'tag9%another_tag'
、同じ理由でできません。また、tag9 をより大きなタグの一部にすることもできます (前述のとおり)。
また、全文検索はこれに適していますか?もしそうなら、例を教えてください。
トリッキーな問題(とにかく私にとって;)どんな助けも大歓迎です。