Mysql - 按百分比限制?

时间:2009-08-20 22:16:06

标签: mysql sql limit

假设我在Select Query中定义别名'count',我想将返回的数量限制为count / 5(或表的20%)。

我该怎么做?除了整数,Mysql似乎没有任何东西,而不是函数。

3 个答案:

答案 0 :(得分:11)

正确。 LIMIT子句采用偏移量和行数,而不是百分比。您正在考虑支持SELECT TOP 20 PERCENT ...的Microsoft SQL Server(请注意,标准SQL中未指定LIMITTOP。)

我会在两个查询中执行此操作:

SELECT COUNT(*) FROM MyTable WHERE ...conditions...

SELECT * FROM MyTable WHERE ...conditions... ORDER BY ...order... LIMIT ?

将参数?替换为count / 5.

您不必在单个查询中解决所有问题。

答案 1 :(得分:5)

LIMIT子句可以使用2个参数,并且必须是整数常量。

你可以尝试这样的事情

SET @skip=1; SET @numrows=(select count(*) div 5 from tbl );
PREPARE STMT FROM 'SELECT * FROM tbl LIMIT ?, ?';
EXECUTE STMT USING @skip, @numrows;

答案 2 :(得分:0)

查看MySQL存储的例程(程序/函数)
http://dev.mysql.com/doc/refman/5.1/en/create-procedure.html