3

タグシステムを実装しています...

現在、、、、フィールドtagsを持つテーブルがあります。namedescriptioncreatedby

そして、imagesフィールドを持つテーブルtags。このフィールド内に、テーブルのタグ名をtagsコンマで区切って入力します。

しかし、タグ付きのすべての画像を取得したい場合Foo、クエリを作成するにはどうすればよいですか?フィールドにはコンマで区切られた複数のタグが含まれるためです。

4

3 に答える 3

3

画像テーブルの正規化を検討したかどうかはわかりませんが、ここではそれが最適なソリューションになります。

持っている代わりに

ここに画像の説明を入力してください

このようにテーブルを構成します

ここに画像の説明を入力してください

次に、このSQLステートメントを実行して、特定のタグを持つすべての画像を返すことができます

SELECT * FROM images
WHERE tags = 'forest';

または、テーブルを現在の形式に保つ必要がある理由がある場合は、次を使用できます。

SELECT * FROM images
WHERE tags LIKE '%forest%';

上記の2つの例の「森」という単語は、検索しているタグです。

于 2013-01-21T00:26:10.363 に答える
2

そのようなことを試してください:

SELECT * FROM images WHERE tags = 'Foo' OR tags LIKE 'Foo,%' OR tags LIKE '%,Foo' OR tags LIKE '%,Foo,%'
于 2013-01-20T22:56:02.817 に答える
0

次のようなフィールドにタグIDを保存しtagsます:'、3,17,55、'

データベースへのクエリを実行すると、次のような高速な構造を使用できるようになります。

SELECT * FROM images WHERE INSTR(tags,',$tag_id,')>'0'

遅い「LIKE'%$tag_id'」を使用する代わりに

于 2013-01-20T23:03:38.333 に答える