mysql 獲取 MySQL 獲取前10 資料

2021-10-25 14:57:40 字數 974 閱讀 9249

這裡記錄乙個問題

在mysql中,我們要檢視前3條記錄的話,是使用limit

select *from t_student order by s_id limit 3;

簡單的分頁也可以使用力limit來完成

select *from t_student order by s_id limit 3 offset 3;

這都比較常見,如果我們想要獲取資料的前10%呢?

在sqlserver中,我們可以直接使用top 10 percent 就可以了,但在mysql中,我們得另想辦法

前10%的資料,我們得知道資料一共有多少,那我們就知道該獲取多少條記錄了,然後還得知道記錄的行號。

記錄行號

在mysql中,獲取行號,要使用變數

mysql-變數的使用

mysql-排序

select

a.*,

@row_num:=@row_num+1 as row_num

from

t_student a , (select @row_num:=0) b

order by

s_id

前10%

有了行號,我們就可以根據行號和總記錄數來過濾了,我們資料少,就看前50%的

select *from (

select

a.*,

@row_num:=@row_num+1 as row_num

from

t_student a , (select @row_num:=0) b

order by

s_id

) base

where

base.row_num <= (@row_num*0.5)

@row_num這個變數,是按行來的,所以我們再where條件中使用的時候,他是最後1條記錄的行號,及總記錄數

總記錄數乘以50%,就是前50%的記錄數,這樣,我們就獲取了前x%資料,做完收工。

mysql獲取時間

select date sub now interval 1 month 上個月今天的當前時間 select unix timestamp date sub now interval 1 month 上個月今天的當前時間 時間戳 select date sub date sub date forma...

mysql獲取排名

mysql計算排名,獲取行號rowno 學生成績表資料 select from table score order by score desc 獲取某個學生成績排名並計算該學生和上一名學生成績差,是並列排名 select select count distinct score from table ...

MySql獲取時間

函式 now 注釋 等同於sqlserver中的getdate 格式 yyyy mm dd hh mm ss 函式 sysdate 注釋 跟now 類似,不同之處在於 now 在執行開始時值就得到了,sysdate 在函式執行時動態得到值。格式 yyyy mm dd hh mm ss 函式 curd...