昨天介紹了mysql裡面的輸出函數,小編覺得日期函數屬於見的比較多的,mysql怎麼輸出當前時間的,我們可以用到now這個函數;效果如下
下面擴展一下mysql裡面格式化時間戳的常用函數
select date_sub(curdate(),interval 1 day) 獲取前一天日期;
select date_sub(curdate(),interval 1 year) 獲取上一年日期;
select date_sub(curdate(),interval 1 month) 獲取上個月日期;
SELECT YEAR(DATE_SUB(CURDATE(),INTERVAL 0 year)) 獲取當前年份;
SELECT YEAR(DATE_SUB(CURDATE(),INTERVAL 1 year)) 獲取上一年份;
SELECT month(DATE_SUB(CURDATE(),INTERVAL 0 month)) 獲取當前月份;
SELECT month(DATE_SUB(CURDATE(),INTERVAL 1 month)) 獲取上一月份;
SELECT day(DATE_SUB(CURDATE(),INTERVAL 0 DAY)) 獲取當前幾號;
SELECT day(DATE_SUB(CURDATE(),INTERVAL 1 DAY)) 獲取前一天幾號;
有興趣的朋友可以都輸入一下看看代碼運行結果,後期在項目中經常會用到,比如統計出這個月文章閱讀最多的文章,或者上周文章點擊最好的數據。等等
下面介紹今天的話題,在mysql查詢結果中去重,比如一個表中欄位關係是一對多,或者多對多的關係。我們需要用到關鍵詞DISTINCT
實際運用到的案例在項目中一個ip訪問多次你的網站,但是結果裡面不需要看到重複的ip,這個時候DISTINCT就需要排上用處了。
我們上demo實際運行一下。
比如這個log表,我們需要查詢出哪些ip有出現過。屬於命令SELECT DISTINCT ip FROM v9_log;
這樣我們就查詢出了不同的ip出現的結果。
執行完畢提示有156行受到影響,說明有156條數據,我們也可以用統計函數count進行得出需要的數據
覺得數據顯示的太多,只需要顯示最前面10條數據,或者時間最新的10條等等 這時候就需要用到where的條件查詢了。我們看看demo
我們可以看到使用了where 和 limit的應用,還可以擴展行轉列,某一段時間某個ip出現的最多等等複雜的寫法,這些就構成了一些網站功能的實現,有時候也可以在程序php或是asp裡面進行處理。比如msyql或者的結果有相同的數據,php數組裡面有去重函數也是實現目標的一種方式,或者根據mysql獲取的結果進行重新整合使用各種函數的處理得到一個星期點擊最多的ip等等。可以擴展的很深很深。今天的內容就介紹到這裡。有興趣的朋友可以把上面說的內容都實現哦。