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

MYSQL文字列をGROUP_CONCATから、IN()が理解できる(配列、like、expression、list)に分割します

    IN()を使用する代わりに 、FIND_IN_SET()を使用します オプションにもなりますか?

    http://dev.mysql .com / doc / refman / 5.0 / en / string-functions.html#function_find-in-set

    mysql> SELECT FIND_IN_SET('b','a,b,c,d');
        -> 2
    

    これは、質問の問題の例に基づく完全な例であり、質問の以前の編集で質問者によってテストされたことが確認されています。

    SELECT name FROM person LEFT JOIN tag ON person.id = tag.person_id GROUP BY person.id 
      HAVING ( FIND_IN_SET(1, GROUP_CONCAT(tag.tag_id)) ) AND ( FIND_IN_SET(2, GROUP_CONCAT(tag.tag_id)) );
    +------+
    | name |
    +------+
    | Bob  |
    +------+
    


    1. SQLServerの条件付き順序

    2. pgSqlを使用して同じ列の前の行の合計をクエリする方法

    3. phpは配列をデータベースの階層的な入れ子集合に変換します

    4. トリガーエラーでのロールバックトランザクション