limit子句中的Mysql子查询
在mysql的limit子句中可以有子查询吗?我试图在一次查询中只从同一个表中选择总行数的10%limit子句中的Mysql子查询,mysql,Mysql,在mysql的limit子句中可以有子查询吗?我试图在一次查询中只从同一个表中选择总行数的10% SELECT * FROM table LIMIT (SELECT (10 * COUNT(*)/100) FROM table); 关于如何实现这一点,有什么建议吗?您问: 在mysql的limit子句中可以有子查询吗 答案基本上是否定的 请阅读以下内容: LIMIT子句可用于约束返回的行数 通过SELECT语句。LIMIT接受一个或两个数值参数, 都必须是非负整数常量,并且 例外情况: 在准备
SELECT * FROM table LIMIT (SELECT (10 * COUNT(*)/100) FROM table);
关于如何实现这一点,有什么建议吗?您问:
在mysql的limit子句中可以有子查询吗
答案基本上是否定的
请阅读以下内容:
LIMIT子句可用于约束返回的行数
通过SELECT语句。LIMIT接受一个或两个数值参数,
都必须是非负整数常量,并且
例外情况:
在准备好的语句中,可以使用?
占位符标记
在存储程序中,可以使用
整数值例程参数或局部变量
如果要随机选择约10%的行:
SELECT *
FROM table
WHERE rand() < 0.1;
它不是100%精确的,但对于大多数应用程序来说,它已经足够好了。如果需要前10%的变量,可以使用用户变量,如下所示
SELECT *
FROM (
SELECT @seq := @seq + 1 AS seq, table.* FROM table, (SELECT @seq := 0) AS init1,
(SELECT @ten_percent := (SELECT (10 * COUNT(*)/100) FROM table)) AS init2
) x
WHERE seq < @ten_percent;