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

where_inとfind_in_setの違い

    WHERE IN 値のセットは、コンマ区切りの文字列を含む単一の値としてではなく、クエリで文字通り指定する必要があります。あなたが書く場合:

    WHERE 6 IN (a.allowed_activity) 
    

    a.allowed_activityを処理します 単一の値として、6と比較します 、検索する複数の値のセットとしてではありません。

    FIND_IN_SET カンマ区切りの文字列で値を検索します。

    それを表示する別の方法は、そのINです たくさんの=のショートカットです ORと組み合わせたテスト :

    WHERE x IN (a, b, c, d)
    

    の略です

    WHERE x = a OR x = b OR x = c OR x = d
    

    このように書き直すと、カンマ区切りの文字列を含む列で機能しない理由がはっきりとわかります。単に翻訳します

    WHERE 6 IN (a.allowed_activity) 
    

    宛先:

    WHERE 6 = a.allowed_activity
    


    1. MySQLにリモートで接続する

    2. 24時間後に期限切れになるSQLエントリ

    3. フラグメントでAndroidSqliteデータベースを開く

    4. MySQLのENUMタイプの列にメンバーを追加するにはどうすればよいですか?