大家好,這是由義縣遊學電子科技提供的關於編程開發和嵌入式方面的實用教程,其中有一些技術方案和一些處理問題的解決方法,希望可以為您提供參考依據.
今天是2020年4月9日,我跟大家分享一個二次操作mysql資料庫查詢結果的方法.我以
資料庫 mariadb為例進行說明.因為它有個heidiSQL圖形管理工具,比較好操作.
資料庫 mariadb為例進行說明.因為它有個heidiSQL圖形管理工具,比較好操作.
場景
場景是這樣:我需要查詢資料庫中今天的數據和前一天數據在某一時間段內的差值.於是我的思路是獲取今天全天的數據,然後在此數據集的基礎上篩選出在某個時間段的數據.於是就出現了今天的文章內容--如何在進行資料庫的查詢結果二次查詢.
具體操作如下:首先我們準備好一些數據.包含今天和昨天的一些數據.用於查詢用.

1.獲取今日的全部數據.使用mysql語句:
#查詢今天數據
SELECT * FROM shuju_table1 WHERE DATEDIFF(zhixingriqi,NOW())=0
查詢結果如下圖:查詢到一條.也就是今天2020.04.09日的數據

那如果你要查詢昨天的數據呢?請使用下面的語句:
查昨天的數據,我們查到一條,也就是2020.04.08日的數據,如下圖
SELECT * FROM shuju_table1 WHERE DATEDIFF(zhixingriqi,NOW())=-1;

2.命令解釋
其中DATEDIFF(zhixingriqi,NOW())=0;這個DATEDIFF語句含義是zhixingriqi欄位每個值距離now()也就是現在的日期差值,如果等於0,就篩選出來,注意是日期差不是時間差.0就是代表當天,如果要是-1就代表是昨天的日期了.
3.篩選結果中再次篩選
下面2個語句是以今天和昨天的數據篩選為例進行說明的.其中zhixingriqi是時間日期欄位.
#select * FROM (SELECT * FROM shuju_table1 WHERE DATEDIFF(zhixingriqi,NOW())=0) tempwhere zhixingriqi>='2020-04-08 16:41:00' and zhixingriqi<='2020-04-08 16:50:00';#以今天的數據為查詢結果為集再次範圍查詢
#select * FROM (SELECT * FROM shuju_table1 WHERE DATEDIFF(zhixingriqi,NOW())=-1) tempwhere zhixingriqi>='2020-04-07 16:41:00' and zhixingriqi<='2020-04-07 16:50:00';#查詢昨天的數據中在指定範圍的數據
其實,這2個語句就是select和第一點中的語句的結合.其中黑色加重字體是我們上一個第一點中的查詢語句.這裡的temp是關鍵字,意思是建立一個臨時存在的表,用於存放我們查詢出來的今天或者昨天的全部數據.然後我們在此臨時表的基礎上再次進行select查詢.就是我們想要的結果了.
