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

MySql-HAVING vs WHERE

    WHERE 処理中の元のテーブルのデータを選択するために使用されます。

    HAVING クエリによって生成された結果セットのデータをフィルタリングするために使用されます。これは、SELECTで集計値とエイリアスを参照できることを意味します 条項。

    たとえば、次のように書くことができます:

    SELECT t1.val - t2.val diff
    FROM t1 JOIN t2 ON (some expression)
    HAVING diff > 10
    

    これは、WHEREを使用しても機能しません diff はエイリアスであり、元のテーブル列の1つではありません。代わりに書くことができます:

    SELECT t1.val - t2.val diff
    FROM t1 JOIN t2 ON (some expression)
    WHERE t1.val - t2.val > 10
    

    ただし、すべての減算を2回実行する必要がある場合があります。1回は選択用で、もう1回は結果セットを生成するためです。



    1. MariaDBデータベース内のすべてのテーブルを一覧表示する4つの方法

    2. サーバーに接続できません-ネットワーク関連またはインスタンス固有のエラー

    3. Eloquentを使用してLaravelでAUTO_INCREMENTを設定するにはどうすればよいですか?

    4. mysqlワークベンチレコードの制限