This Might Be Useful

Реализация аналога LIMIT из MySQL в MS SQL

В MS SQL отсутствует LIMIT в SELECT'е. Это поразительно и глупо, но это так. И после MySQL это невероятно раздражает. Поэтому было найдено решение проблемы. Сравнительно медленное, но зато работающее не только в новых версиях MS SQL (где есть row_number(), облегчающий жизнь). Итак, для того, чтобы сделать то же, что в MySQL делает следующий запрос:

SQL:
  1. SELECT *
  2. FROM `some_table`
  3. LIMIT 10, 20

в MS SQL надо написать:

SQL:
  1. SELECT top 20 * FROM [some_table]
  2. WHERE [primary_key_field] NOT IN
  3.   (
  4.     SELECT top 10 [primary_key_field]
  5.     FROM [some_table]
  6.     ORDER BY [primary_key_field]
  7.   )
  8. ORDER BY [primary_key_field]

· Двигаем при выводе строчки в таблице друг относительно друга
· Как заставить JOIN в MySQL нормально использовать индексы и максимально ускорить выполнение запросов
· MySQL функция для конвертирования bigint IP адресов в удобоваримые varchar
· Переход с MySQL на PostgreSQL: аналог mysql_insert_id()
· Сборка MySQL, Apache и PHP со всеми необходимыми расширениями

- Коментировать
- Trackback

Leave a Reply