mysql 如何在limit函数中传入查询的结果数量?


我想把从一个表中查询的一个结果数量 作为limit 的offset ,但是limit后是无法使用子查询的,想要的结果类似下边的sql:

   
  SELECT * FROM `test` limit (select count(*) from tab where userId < 2),5;
 

如何改写下这条sql 能一句完成查询?

补充 那个子查询的条件不一定是 userId < 2 我只是举个例子,想说明子查询也有条件。从tab表中查询出满足条件的数量当 limit 的偏移量。查询的条数可能是多条。

sql mysql

zhouxin 12 years, 3 months ago

用存储过程来实现,代码如下:

   
  PREPARE sqlTmp FROM 'SELECT * FROM test limit ?,1'
  
SET @a=(select count(*) from tab where userId < 2);
EXECUTE sqlTmp USING @a;

裸体围裙丶 answered 12 years, 3 months ago

Your Answer