Mysql按百分比数据查询

mysql的分页查询,如何实现查找一张表的前30%的记录,求大神指教!!

先排序,再找到总数量,再计算30%,再查询小于等于30%的记录

用count *得到总数,然后除以3.33,再select top

 select * from table limit 0, ((select count(*) from table) * 0.3)

mysql中limit后面的参数能不能给变量
可以用 CONCAT把查询语言与变量连接起来再执行,参考如下代码。

DELIMITER //
CREATE PROCEDURE GetItems()
BEGIN
SELECT @total := count(id) FROM items;
SET @sql = CONCAT('SELECT id, title FROM items LIMIT 0,', CEIL(@toal/2));
PREPARE stmt FROM @sql;
EXECUTE stmt;
END //
DELIMITER ;