A possibilidade de paginar ou seccionar os resultados de suas queries ou consultas MySQL, tornam a cláusula LIMIT uma das mais requisitadas por desenvolvedores.
Enquanto outras cláusulas são usadas para filtrar a exibição de resultados, LIMIT é usado para inibir o envio de resultados do servidor — motivo pelo qual ele ajuda a poupar o fluxo de informações inúteis a trafegar pela rede.
Se você quiser entender melhor o uso da cláusula LIMIT e das variáveis no MySQL, sugiro usar o quadro de pesquisa, no topo desta página, para encontrar outros posts sobre estes assuntos — vale a pena!
Como criar expressões usando a cláusula LIMIT do MySQL
O MySQL só vai aceitar inteiros literais em expressões — a menos que você envie suas consultas de dentro de um script. Neste caso, você tem mais flexibilidade para elaborar suas expressões e inserir os valores resultantes nas strings das consultas.
Se vocẽ tentar incluir uma expressão matemática, direto na linha de comando do seu cliente MySQL, vai obter um erro:
SELECT * FROM ClientesCidades LIMIT 2+2;
Isto, simplesmente, não é permitido — e vai provavelmente retornar um erro como o reproduzido abaixo:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '+2' at line 1
O uso de variáveis, também não é permitido, deste jeito:
SELECT * FROM profile LIMIT @pula_contagem, @exibir_contagem;
A expressão precisa ser criada, primeiro. Depois, seu resultado, pode ser inserido em uma query.
Mesmo de dentro do PHP, isto não é aceito:
$str = "SELECT * FROM ClientesCidades LIMIT $a + $b";
Para evitar o problema, tente elaborar a expressão primeiro:
$c = $a + $b; $str = "SELECT * FROM ClientesCidades LIMIT $c";
Uma outra abordagem possível (também de dentro do PHP), seria esta:
$str = "SELECT * FROM ClientesCidades LIMIT ".($a + $b);
Fique atento para as aspas e para os parênteses.