Подтвердить что ты не робот

Есть ли альтернатива TOP в MySQL?

Я хочу знать альтернативу ключевого слова TOP, как в MySQL. Я прочитал о TOP в SQL Server.

Есть ли альтернатива этому в MySQL или какой-либо другой метод в MySQL, из которого мы можем получить такую ​​же функциональность?

4b9b3361

Ответ 1

Заказ и ограничение результатов:

SELECT field1, field2
FROM myTable
ORDER BY field1 ASC
LIMIT 10

Ответ 2

Вы можете использовать ключевое слово LIMIT (см. документацию инструкции SELECT) - она ​​идет в конце запрос:

select *
from your_table
where ...
limit 10

чтобы получить верхние 10 строк


Или даже:

select *
from your_table
where ...
limit 5, 10

Чтобы получить 10 строк, начинаем с 6-го (т.е. получая строки с 6 по 15).

Ответ 3

Я знаю, на этот вопрос был дан ответ, я хотел бы добавить некоторые соображения производительности. Оператор TOP в MySQL не переводится с помощью LIMIT.

Предположим, вы хотите, чтобы последние 10 человек были вставлены в db:

SELECT name, id
FROM persons
ORDER BY id DESC
LIMIT 10

Однако при использовании тысяч строк это может стать чрезвычайно медленным.

Более быстрое решение будет получать текущее число X строк:

SELECT COUNT(*) FROM persons

и используйте это число для запроса последних 10:

SELECT name, id
    FROM persons
    LIMIT x-10,10

Таким образом, предел пропустит первые строки X-10 и вернет следующие 10. Для меня это было в 100 раз быстрее, чем сортировка колонки, но это только мой опыт.

Ответ 4

да, существует limit.

Пример:

    SELECT * FROM `your_table` LIMIT 0, 10 

Это отобразит первые 10 результатов из базы данных.