ограничити број редова који се враћа из скупа резултата, а не доношење цео скуп у МиСКЛ бази података. Клаузула Лимит ради са наредбом СЕЛЕЦТ за враћање само наведеног броја редова. Овај упит прихвата само један или два аргумента, а њихове вредности треба да буду нула или било који позитиван цео број.
То је неопходно у таквом случају када табела садржи хиљаде редова, или желите да вратите само недавно унете податке. Другим речима, ако нисте заинтересовани да добијете све редове враћене из упита, користите клаузулу МиСКЛ Лимит са наредбом СЕЛЕЦТ. Побољшава перформансе упита и чак престаје да сруши систем када табела садржи велики број података.
Да би добио само наведене редове из табеле, МиСКЛ користи ЛИМИТ клаузулу, док СКЛ користи ТОП клаузулу, а Орацле користи клаузула са СЕЛЕЦТ изјава.
Синтакса
Следеће је синтакса коришћења Лимит упита у МиСКЛ :
SELECT column_list FROM table_name LIMIT offset, count;
У горњој синтакси можемо видети:
То је назив колоне коју желите да вратите.
Табле_наме: То је име табеле која садржи име ваше колоне.
Офсет: Он одређује број реда из којег желите да се вратите. Помак реда почиње од 0, а не од 1.
цоунт: Одређује максималан број редова које желите да вратите.
Следећи визуелни приказ то јасније објашњава:
НАПОМЕНА: Ако наведете само један аргумент са клаузулом Лимит, МиСКЛ претпоставља ово да одреди максималан број редова за враћање излаза из скупа резултата. У том случају, аргументи клаузуле Лимит, офсет и број су еквивалентни.
ЛИМИТ клаузула са клаузулом ОРДЕР БИ
Корисник треба да користи клаузулу Лимит са клаузулом Ордер Би. Без употребе Ордер Би клаузуле, добићете резултат у ан . У том случају, тешко је знати да упит враћа резултат из којих редова. Дакле, то је добра навика за коришћење Група по клаузули
Следећа синтакса се може користити за добијање резултата у јединственом редоследу:
SELECT column_list FROM table_name GROUP BY order_expression LIMIT offset, count;
Примери ограничења за МиСКЛ
Хајде да направимо узорак табеле у бази података која садржи следеће податке и разумемо како Лимит клаузула функционише у МиСКЛ-у користећи различите примере:
Табела: запослени
1. МиСКЛ лимит за враћање највиших или најнижих редова
Следећа изјава је коришћена за добијање пет најбољих млађих запослених:
SELECT * FROM employees ORDER BY emp_age LIMIT 5;
Ова изјава прво сортира старост запосленог користећи клаузулу Гроуп Би, а затим клаузула Лимит враћа резултат од првих пет. Након извршења горњих корака, добићемо следећи излаз:
2. МиСКЛ Лимит да бисте добили опсег редова користећи офсет
Понекад желите да добијете резултат између опсега вредности. На пример, имате велики број редова за приказ података о апликацијама, а затим их поделите на странице, а свака страница садржи највише 10 редова у табели. У том случају, можете користити следећи упит да бисте добили опсег редова:
SELECT emp_id, emp_name, income FROM employees ORDER BY income DESC LIMIT 3,7;
Ова изјава враћа редове који почињу од реда број 3 и иде до максимално 7. реда. Такође сортира приходе запосленог од највишег до најнижег реда. Извршите упит и добићете следећи излаз:
два према један мултиплексор
3. МиСКЛ ограничење са клаузулом ВХЕРЕ
МиСКЛ Лимит се такође може радити са ВХЕРЕ клаузулом. Прво проверава наведени услов у табели и производи редове који одговарају услову.
Овај упит бира првих пет запослених чија је старост већа од 30 година. Овде смо такође користили клаузулу Ордер Би да сортирамо запослене у опадајућем редоследу користећи њихов приход.
SELECT emp_name, emp_age, income FROM employees WHERE emp_age>30 ORDER BY income DESC LIMIT 5;
Након успешног извршења горње изјаве, добићемо следећи излаз:
4. МиСКЛ ЛИМИТ да бисте добили н-ту највећу или најнижу вредност
Понекад желимо да добијемо редове н-те највеће или најниже вредности. У том случају, можемо користити следећу МиСКЛ ЛИМИТ клаузулу да бисмо добили очекивани резултат:
SELECT column_list FROM table_name ORDER BY expression LIMIT n-1, 1;
У овој синтакси, клаузула ЛИМИТ н-1, 1 враћа 1 ред који почиње у реду н.
На пример, следећи упит враћа информације о запосленима који имају други највећи приход:
SELECT emp_name, city, income FROM employees ORDER BY income LIMIT 1, 1;
Извршавајући горњу изјаву, даће следећи упит:
Треба напоменути да горњи упит функционише само када ваша табела не садржи два запослена која имају нека примања. У том случају ћемо користити ДЕНСЕ_РАНК () да бисте добили тачнији резултат.