Используйте LIMIT для разбиения результатов на страницы в запросе MySQL

Я хочу получать результаты по одной странице за раз; Я хочу, чтобы номер страницы был параметром (в подготовленном операторе JDBC ). Рассмотрим следующий фрагмент

SELECT * FROM thread t ORDER BY t.id LIMIT ((? - 1) * 20), 20

Так что в идеале для страницы 1 это должно было бы привести к LIMIT 0, 20.

Когда я тестирую

SELECT * FROM thread t ORDER BY t.id LIMIT ((1 - 1) * 20), 20

Мне говорят, что у меня синтаксическая ошибка. Я не понимаю, что это может быть, хотя -это просто простая математика. Все, что он говорит мне, это

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 '((1 - 1) * 20), 20' at line 1

Что я делаю не так с пунктом LIMITи как это исправить?

6
задан corsiKa 30 July 2012 в 19:59
поделиться