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

Chọn một chuỗi giữa hai số trên MySQL

Những thứ như thế này nên làm:-

SELECT a.Name, GROUP_CONCAT(YEAR(DATE_ADD(a.start_date, INTERVAL b.aNum YEAR))) AS activity_years  
FROM person a
CROSS JOIN (SELECT a.i + b.i * 10 AS aNum FROM integers a, integers b) b
WHERE YEAR(DATE_ADD(a.start_date, INTERVAL b.aNum YEAR)) <= YEAR(a.end_date)
GROUP BY a.Name

Nó dựa vào một bảng các số nguyên với một cột được gọi là i, với các giá trị từ 0 đến 9. Nó kết hợp điều này với chính nó để nhận một phạm vi số từ 0 đến 99, do đó, đối phó với các phạm vi ngày cách xa nhau.

Xóa các lựa chọn con để sử dụng nó trong một chế độ xem

SELECT p.Name, GROUP_CONCAT(YEAR(DATE_ADD(p.start_date, INTERVAL (a.i + b.i * 10) YEAR))) AS activity_years  
FROM person p
CROSS JOIN integers a
CROSS JOIN integers b
WHERE YEAR(DATE_ADD(p.start_date, INTERVAL (a.i + b.i * 10) YEAR)) <= YEAR(p.end_date)
GROUP BY p.Name


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo kích thước cụ thể

  2. Mysql - Chọn không sử dụng chỉ mục

  3. Làm thế nào để thay đổi thư mục dữ liệu MySQL?

  4. Làm mới trang thay vì tải Ajax mà không có

  5. truy vấn mysql để cập nhật trường thành max (trường) + 1