Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL Select Query ao querer grupos de x elementos retornados em lotes


Infelizmente, o MySQL não suporta o ROW_NUMBER() função que a maioria das outras marcas de banco de dados suportam, mas você pode simulá-la com uma variável de usuário.

O seguinte é testado com seus dados e MySQL 5.1.49:
SET @rownum := 0;
SET @ip := null;

SELECT * FROM (
    SELECT IF(@ip=ip,@rownum:[email protected]+1,@rownum:=0) AS rownum, @ip:=ip AS ip, oid
    FROM test ORDER BY ip, oid
) AS t
ORDER BY FLOOR(rownum/10), ip, oid;