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

Tham gia MySQL dựa trên lập chỉ mục YEAR () - Thêm cột hoặc Cột được tạo

Bạn có thể thử điều này:

FROM workdone
LEFT JOIN staffcost ON workdone.date >= MAKEDATE(staffcost.costyear, 1)
                   AND workdone.date <  MAKEDATE(staffcost.costyear+1, 1)

Điều này sẽ cho phép sử dụng chỉ mục trên workdone.date để tìm kiếm các ngày giữa ngày đầu tiên của costyear cho đến nhưng không bao gồm ngày đầu tiên của costyear+1 .

Nói chung, loại tìm kiếm theo phạm vi này có thể khai thác các chỉ mục trong đó các hàm (chẳng hạn như YEAR(datestamp) ) không được.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Có quá nhiều truy vấn trên mỗi trang?

  2. Cách xử lý múi giờ MySQL trong script

  3. Khoảng thời gian truy vấn MySQL và giá trị giảm tối đa so với giá trị tối đa trước đó

  4. Tại sao tham số ràng buộc trong mệnh đề ORDER BY không sắp xếp thứ tự kết quả?

  5. mysql ném cột không xác định 'mac' trong 'danh sách trường'