Проблем:
Искате да ограничите броя на редовете в резултат на заявка в MySQL, PostgreSQL или SQLite.
Пример:
В exam
таблица, има имена на студентите с резултатите от изпита.
name | резултат_изпит |
---|---|
Джанет Морген | 9 |
Тая Бейн | 11 |
Ан Джонсън | 11 |
Джош Каур | 10 |
Елън Торнтън | 8 |
Искате да получите трите реда с най-добри резултати от изпита.
Решение:
SELECT * FROM exam ORDER BY exam_result DESC LIMIT 3;
Резултатът от заявката изглежда така:
name | резултат_изпит |
---|---|
Тая Бейн | 11 |
Ан Джонсън | 11 |
Джош Каур | 10 |
Дискусия:
Първо, сортирайте редовете по exam_result
колона в низходящ ред с помощта на ORDER BY
клауза и DESC
ключова дума. След това след ORDER BY
клауза, използвайте LIMIT
ключова дума с определен брой редове, които искате да върнете (тук, 3
).
ORDER BY exam_result DESC LIMIT 3
Ако искате да извлечете три реда на случаен принцип вместо най-добрите три, пропуснете ORDER BY
част.
SELECT * FROM exam LIMIT 3;
Разбира се, можете да извлечете произволен брой редове. Просто заменете 3 с желания от вас номер.