Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySql - HAVING so với WHERE

WHERE được sử dụng để chọn dữ liệu trong các bảng gốc đang được xử lý.

HAVING được sử dụng để lọc dữ liệu trong tập kết quả do truy vấn tạo ra. Điều này có nghĩa là nó có thể tham chiếu các giá trị và bí danh tổng hợp trong SELECT mệnh đề.

Ví dụ, có thể viết:

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

Điều này sẽ không hoạt động khi sử dụng WHERE bởi vì diff là một bí danh, không phải là một trong các cột ban đầu của bảng. Thay vào đó, bạn có thể viết:

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

nhưng sau đó nó có thể phải thực hiện tất cả các phép trừ hai lần:một lần để chọn và một lần nữa để tạo ra tập kết quả.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhận số lớn nhất trong cơ sở dữ liệu mySQL bằng PHP

  2. tạo một mảng từ cơ sở dữ liệu

  3. MySQL:Sử dụng DATETIME làm khóa chính

  4. Nhận điểm đa giác mysql

  5. Truy vấn MySQL để chọn kết quả có tăng tự động dưới dạng cột mới được thêm vào kết quả