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

Tối ưu hóa MySQL trên việc lọc các cặp khóa-giá trị dưới dạng bản ghi

Điều này sẽ giúp bạn có được những gì bạn cần ... Mỗi điều kiện mệnh đề "HOẶC" d where, bạn có thể tiếp tục thêm vào như một mục đủ điều kiện. Sau đó, chỉ cần điều chỉnh mệnh đề "Có" để đáp ứng số lượng giống như tiêu chí bạn đang cho phép ... Tôi đã đặt bảng quan hệ trước vì điều đó sẽ có một tập hợp so khớp nhỏ hơn trên "Giá trị" của giá trị Thành phố hoặc loại .. . Đảm bảo bạn có một chỉ mục trên bảng quan hệ trên cột "VALUE".

SELECT STRAIGHT_JOIN
      rel.id_obj
   from 
      relations rel
         join attributes atr
            on rel.id_addr = atr.id
   where 
         ( rel.value = 'Apartment' AND atr.name = 'Type'  )
      or ( rel.value = 'Some City' AND atr.name = 'City' )
   group by 
      atr.id_obj
   having
      count(*) = 2
   limit
      0, 20

Nếu bạn muốn tất cả dữ liệu đối tượng thực tế TỪ kết quả này, bạn sẽ bọc nó giống như ...

select obj.*
   from 
      ( complete SQL statement above ) PreQuery
         join Object obj on PreQuery.id_obj = obj.id



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Quyền truy cập người dùng MySQL - bảng cụ thể

  2. mysql_fetch_array và vòng lặp while trong php

  3. Laravel:cách lấy giá trị trung bình trên các mối quan hệ hasMany lồng nhau (hasManyThrough)

  4. Tạo Bảng MySQl Tập lệnh Cập nhật

  5. Hoạt động không được phép sau khi ResultSet đóng (mysql, java)