首頁  >  文章  >  資料庫  >  mysql中where和having的區別

mysql中where和having的區別

下次还敢
下次还敢原創
2024-05-02 00:39:15642瀏覽

WHERE 子句過濾行,應用於分組前;HAVING 子句過濾組,應用於分組後且可使用組聚合函數的結果。

mysql中where和having的區別

WHERE 與HAVING 子句的差異

在MySQL 中,WHERE 和HAVING 子句都用於過濾資料集,但它們在作用範圍和使用方式上存在主要差異。

WHERE 子句

  • 作用在 SELECT 語句的 FROM 子句中。
  • 用於過濾行,只能基於表中的列。
  • 在對行進行分組之前應用。

HAVING 子句

  • 作用在 SELECT 語句的 GROUP BY 子句之後。
  • 用於過濾群組,可以基於群組聚合函數的結果。
  • 在對行進行分組之後套用。

使用範例

WHERE 子句:

<code class="sql">SELECT * FROM customers WHERE age > 30;</code>

此查詢從customers 表中選擇所有年齡大於30 的客戶。

HAVING 子句:

<code class="sql">SELECT city, COUNT(*) AS customer_count
FROM customers
GROUP BY city
HAVING customer_count > 100;</code>

此查詢從 customers 資料表中選擇所有客戶數量超過 100 個的城市。

總結

  • WHERE 子句用於篩選行,在分組之前套用。
  • HAVING 子句用於篩選群組,在分組之後套用,並且可以使用群組聚合函數的結果。

以上是mysql中where和having的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn