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

MySQL:ORなしでcol IN(null、)が可能なテーブルから*を選択します

    SELECT  *
    FROM    mytable
    WHERE   COALESCE(col, '') = ''
    

    ただし、ORよりも注意してください 列にインデックスが付けられている場合、クエリははるかに効率的になります:

    SELECT  *
    FROM    mytable
    WHERE   col = '' OR col IS NULL
    

    これはref_or_nullを使用します インデックスのアクセスパス。

    NULLsとともに値のリストから選択する必要がある場合 、null以外のすべての値をリストに追加し、単一のOR IS NULLを追加するだけです。 状態:

    SELECT  *
    FROM    mytable
    WHERE   col IN ('val1', 'val2', 'val3') OR col IS NULL
    

    これはcolのインデックスを使用します 同様に。



    1. Mysql Timeタイプは、24時間を超える場合にArgumentError:引数がRailsの範囲外になります

    2. java.lang.IllegalStateException:CursorWindowから行0、列-1を読み取れませんでした-Androidsqliteの問題

    3. サブクエリに2つの「WHERENOTIN」があるLaravelEloquent

    4. MySQLを介してデータベースから欠落している日付を取得する