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

Bảng CTE đệ quy MySQL không tồn tại

Cấu trúc của CTE đệ quy của bạn bị tắt và nửa trên của liên kết phải là một trường hợp cơ sở hạt giống. Sau đó, phần đệ quy sẽ thêm một ngày vào giá trị đến trước đó:

WITH RECURSIVE cte (n, dt) AS (
    SELECT 1, '2019-09-20'
    UNION ALL
    SELECT n + 1, TIMESTAMPADD(DAY, n, '2019-09-20') FROM cte WHERE n <= 5
)

SELECT * FROM cte;

Bản trình diễn

Lưu ý, chúng tôi sử dụng TIMESTAMPADD() tại đây để giải quyết vấn đề của INTERVAL biểu thức, thực sự không thể nhận một biến.

Nếu bạn muốn sử dụng phương pháp này để tạo một chuỗi ngày phù hợp với các giá trị từ và đến trong bảng của mình, thì bạn có thể thử tham gia:

SELECT
    t1.dt
FROM cte t1
INNER JOIN yourTable t2
    ON t1.dt BETWEEN t2.from_date AND t2.to_date;

Khi được sử dụng theo cách này, CTE đệ quy hoạt động như một lịch bảng.




  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 PHP Không có cơ sở dữ liệu nào được chọn - Không thể tìm thấy lỗi

  2. Làm thế nào để kết nối nhiều cơ sở dữ liệu, máy chủ trong mysql và truy vấn từ cả hai bảng của nhau?

  3. Làm thế nào để hiển thị các ký tự UTF-8 trong phpMyAdmin?

  4. Các bảng cơ sở dữ liệu động trong django

  5. Cách bật INNODB trong mysql