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

Truy vấn tìm kiếm nhiều thẻ

Điều sau sẽ hoạt động.

SELECT media_id
FROM tagXmedia
WHERE tag_id IN (SELECT id FROM tag WHERE name IN ('home','hawaii'))
GROUP BY media_id
HAVING COUNT(tag_id) = 2;

Nếu bạn muốn nó khớp với nhiều hơn chỉ hai thẻ, bạn có thể dễ dàng thêm chúng. Chỉ cần nhớ thay đổi 2 trong HAVING mệnh đề.

Tôi đã giả định tất cả các hàng trong tagXmedia là duy nhất. Trong trường hợp không có, bạn sẽ phải thêm DISTINCT đến COUNT một phần.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trao đổi giá trị cột trong MySQL

  2. Tạo một bảng với các tên cột bắt nguồn từ các giá trị hàng của một bảng khác

  3. WAMP Không thể truy cập trên mạng cục bộ 403 Bị cấm

  4. Các ký tự Unicode trở thành dấu chấm hỏi sau khi chèn vào cơ sở dữ liệu

  5. CodeIgniter / PHP / MySQL:Truy xuất dữ liệu bằng JOIN