Drupal использует db_query_range() по той причине, что не все базы данных поддерживают LIMIT,
db_query_range()
LIMIT
можете назвать несколько?
DB2, MSSQL, Oracle и Informix не поддерживают LIMIT. На самом деле, это не в стандарте SQL. (Стандартный "FETCH FIRST" действительно)
Вот хороший источник для сравнения SQL: http://troels.arvin.dk/db/rdbms/#select-limit
Microsoft SQL Server не поддерживает LIMIT. Он поддерживает оператор TOP, который можно использовать для выполнения похожих задач. Основное ограничение с TOP - невозможность указать смещение.
TOP
DB2, Oracle и MS SQL Server не поддерживают предложение LIMIT.
Google для <database name> LIMIT, и вы узнаете эквивалентное поддерживаемое предложение для этой базы данных или информацию о том, поддерживается ли LIMIT.
<database name> LIMIT
ms sql, оракул.
и фактически LIMIT не существует в ANSI SQL '92, которому должны следовать все современные базы данных. так что в настоящее время это просто ненужное расширение / синтаксический сахар / специфический sql диалект
С другой стороны, ANSI-92 SQL предоставляет оконную функцию ROW_NUMBER() для достижения этой цели, которая поддерживается во многих базах данных. См. SELECT (SQL) в Википедии.
ROW_NUMBER()