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

create_series () tương đương trong MySQL

Đây là cách tôi làm điều đó. Nó tạo ra một phạm vi ngày từ 2011-01-01 đến 2011-12-31 :

select 
    date_format(
        adddate('2011-1-1', @num:[email protected]+1), 
        '%Y-%m-%d'
    ) date
from 
    any_table,    
    (select @num:=-1) num
limit 
    365

-- use limit 366 for leap years if you're putting this in production

Yêu cầu duy nhất là số hàng trong any_table phải lớn hơn hoặc bằng kích thước của phạm vi cần thiết (> =365 hàng trong ví dụ này). Bạn rất có thể sẽ sử dụng điều này như một truy vấn con của toàn bộ truy vấn của mình, vì vậy trong trường hợp của bạn là any_table có thể là một trong những bảng bạn sử dụng trong truy vấ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. Mẹo giám sát MySQL cho Moodle

  2. Lỗi MySQL::'Quyền truy cập bị từ chối đối với người dùng' root '@' localhost '

  3. Sử dụng OpenVPN để truy cập an toàn vào cụm cơ sở dữ liệu của bạn trên đám mây

  4. Sử dụng các hàm tổng hợp (SUM, AVG, MAX, MIN, COUNT, DISTINCT) trong MySQL

  5. Điều chỉnh hiệu suất truy vấn MySQL