The WHERE clause filters row-level data, while the HAVING clause filters group-level data. The WHERE clause is applied after the FROM keyword, while the HAVING clause is applied after the GROUP BY keyword.
The relationship between WHERE and HAVING clauses in MySQL
WHERE and HAVING are used to filter MySQL data sets Two clauses. The difference is that the WHERE clause is used to filter rows, while the HAVING clause is used to filter groups.
WHERE clause
The WHERE clause is written after the FROM keyword and is used to filter rows based on given conditions. It only considers the value of each row, not the other rows in the group. The WHERE clause can be used to filter rows that do not meet the conditions.
HAVING clause
The HAVING clause is written after the GROUP BY keyword and is used to filter groups based on the data in the group. It considers the aggregated values in the group and filters the group based on these values. The HAVING clause can be used to filter groups that do not meet the criteria.
Relationship
The WHERE and HAVING clauses are mainly used to solve different problems:
Example
The following example shows the difference between the WHERE and HAVING clauses:
<code class="sql">SELECT * FROM sales WHERE product_id = 1; -- WHERE 过滤行</code>
This query will return the product ID All sales records for 1.
<code class="sql">SELECT product_id, SUM(quantity) AS total_quantity FROM sales GROUP BY product_id HAVING total_quantity > 100; -- HAVING 过滤组</code>
This query will return all product groups whose product ID and their sales total are greater than 100.
It is important to understand the difference between the WHERE and HAVING clauses in order to effectively filter data in MySQL queries.
The above is the detailed content of The relationship between where and having in mysql. For more information, please follow other related articles on the PHP Chinese website!