在MySQL中查詢連續五天是一個比較常見的需求,下面我們來介紹一下如何實現。
首先,我們需要先創建一張測試表,以便進行數據查詢:
CREATE TABLE test( id INT(11) NOT NULL AUTO_INCREMENT, date DATE NOT NULL, PRIMARY KEY (id) );
接著,我們往這張表中插入一些測試數據:
INSERT INTO test(date) VALUES ('2022-01-01'), ('2022-01-02'), ('2022-01-03'), ('2022-01-05'), ('2022-01-06'), ('2022-01-07'), ('2022-01-08');
測試數據中,我們故意留下了一天空缺,這樣方便我們測試查詢連續五天的SQL語句。
下面,我們就來看看如何查詢連續五天的數據:
SELECT * FROM test AS t1 WHERE (SELECT COUNT(*) FROM test AS t2 WHERE t2.date BETWEEN t1.date AND DATE_ADD(t1.date, INTERVAL 4 DAY)) = 5;
上述SQL語句首先使用了一個子查詢來統計每個日期往后五天中有多少天存在數據,然后在外層查詢中使用WHERE條件來過濾出連續五天存在數據的日期。
最后,我們可以看到以下結果:
+----+------------+ | id | date | +----+------------+ | 2 | 2022-01-02 | | 3 | 2022-01-03 | | 5 | 2022-01-06 | | 6 | 2022-01-07 | | 7 | 2022-01-08 | +----+------------+
可以看到,我們成功地查詢出了所有連續五天存在數據的日期。