sql >> データベース >  >> RDS >> Mysql

複数の値を持つFIND_IN_SET

    FIND_IN_SET() カンマ区切りのリストで単一の値を検索するためにのみ使用でき、2つのリストでは機能しません。

    値ごとに個別に呼び出す必要があります。

    SELECT * FROM tablename
    WHERE FIND_IN_SET('12', category_id) OR FIND_IN_SET('13', category_id) OR FIND_IN_SET('15', category_id)
    

    カンマ区切りのリストを使用する代わりに、スキーマを正規化した方がよいでしょう。カテゴリIDを使用して多対多のテーブルを作成する場合は、次のことができます。

    SELECT t1.*
    FROM tablename AS t1
    JOIN item_categories AS c ON t1.id = c.table_id
    WHERE c.category_id IN (12, 13, 15)
    



    1. EntityFrameworkクエリを最適化する方法

    2. MAMP上のMySQLサーバー-Windowsが起動しない

    3. MySQLでフロートを選択する

    4. Webサイトメンバーの電子メールアドレスを自動的に作成するにはどうすればよいですか?