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

Mệnh đề MySQL Multiple Where

Tôi nghĩ rằng bạn đang theo đuổi điều này:

SELECT image_id
FROM list
WHERE (style_id, style_value) IN ((24,'red'),(25,'big'),(27,'round'))
GROUP BY image_id
HAVING count(distinct style_id, style_value)=3

Bạn không thể sử dụng AND, vì các giá trị không được 24 red25 big27 round đồng thời trong cùng một hàng, nhưng bạn cần kiểm tra sự hiện diện của style_id, style_value trong nhiều hàng, dưới cùng một image_id .

Trong truy vấn này, tôi đang sử dụng IN (trong đó, trong ví dụ cụ thể này, tương đương với OR) và tôi đang đếm các hàng riêng biệt phù hợp. Nếu 3 hàng riêng biệt khớp nhau, điều đó có nghĩa là cả 3 thuộc tính đều có mặt cho image_id đó và truy vấn của tôi sẽ trả về.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. hai từ và khoảng trống không hoạt động trong truy vấn MYSQL sử dụng LIKE

  2. Khi nào tôi nên sử dụng giao thức nén MySQL?

  3. Hàm chuỗi MySQL (Danh sách đầy đủ)

  4. Làm thế nào để loại bỏ MySQL hoàn toàn với các tệp cấu hình và thư viện?

  5. Làm thế nào để lấy nhiều bản ghi so với một bản ghi dựa trên mối quan hệ?