1

「value1、value2、value3など...」のように、タグが行内に展開された配列として格納されるタグシステムがあります。
タグ検索ページを作成しようとしていますが、方法がわかりません。それを配列に変換して、誰かが検索した特定のタグが配列内にあるかどうかを確認します(SELECTを使用している間は展開できないため)。

誰かが助けることができますか、それは不可能ですか?

皆さんの助けに感謝します、それはうまくいきました。

4

5 に答える 5

3

カンマ区切りの文字列を操作するというmysql関数があります。FIND_IN_SET例えば:

SELECT * FROM posts WHERE FIND_IN_SET('some_tag', post_tags)>0

ここのドキュメント:Mysql FIND_IN_SET

于 2012-05-26T20:57:01.400 に答える
1

より良い方法は、データを正規化し、タグを別のテーブルに移動してから、タグをエンティティに結合することだと思います。検索は速くて簡単です =)

于 2012-05-26T21:30:36.717 に答える
0

データベースを正規化します

tags {
  object_id
  tag_id
}

または、あなたが怠け者なら、そうしてください

UPDATE tags = CONCAT(",", tags, ",") FROM table

その後

SELECT * FROM table WHERE tags LIKE '%,selected_tag,%'
于 2012-05-26T21:39:47.617 に答える
0

データベースから $tags_str を読み取ります。

文字列を配列に変換します。

   <?php
    $tags_str = "value1, value2, value3";
    $tags_arr = explode(', ', $tags_str);
    ?>

次に、数学を検索するためにin_array() PHP 関数を使用します。

于 2012-05-26T20:51:40.083 に答える
0

選択クエリで「LIKE」を使用できます

SELECT row FROM table WHERE tag LIKE '%search_value%'
于 2012-05-26T20:52:31.853 に答える