如何 *** 作使mysql某个表查询只查前十条记录的命令?

如何 *** 作使mysql某个表查询只查前十条记录的命令?,第1张

SELECT * FROM category LIMIT 3, 5\x0d\x0aLIMIT 3, 5 这一句是关键3代表第几条数据之后开始,5代表差出几条结束(这里以mysql中的category表) \x0d\x0a显示10条:\x0d\x0aSELECT * FROM category LIMIT 0,10 \x0d\x0a或者\x0d\x0aSELECT * FROM category LIMIT 10

这里记录一个问题

在MySQL中,我们要查看前3条记录的话,是使用limit

简单的分页也可以使用力limit来完成

这都比较常见,如果我们想要获取数据的前10%呢?

在SQLServer中,我们可以直接使用top 10 percent 就可以了,但在MySQL中,我们得另想办法

前10%的数据,我们得知道数据一共有多少,那我们就知道该获取多少条记录了,然后还得知道记录的行号

@row_num这个变量,是按行来的,所以我们再where条件中使用的时候,他是最后1条记录的行号,及总记录数

总记录数乘以50%,就是前50%的记录数,这样,我们就获取了前X%数据,做完收工。

select * from (

select

tablename_tmp.*,

@rownum:=@rownum+1 ,

if(@pyear=tablename_tmp.year,@rank:=@rank+1,@rank:=1) as rank,

@pyear:=tablename_tmp.year 

from (

select * from tablename order by year asc

)

tablename_tmp ,

(select @rownum :=0 , @pyear := null ,@rank:=0) a

)

result where rank <=10

你这里其他条件判断是前十条记录吗?上面是每年各取十条。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/6111434.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-15
下一篇 2023-03-15

发表评论

登录后才能评论

评论列表(0条)

保存