ОГРАНИЧЕНИЕ Синтаксис:
>> ИЗБЕРЕТЕ израз от таблица ГРАНИЧЕН офсет, редове;Ето обяснението на заявката LIMIT:
- Израз: Може да е име на колона или стерично „*“.
- Изместване: Отместването определя отместването, което ще бъде върнато от първия ред. Ако използвате 0 като отместване, това ще върне ред 1 и обратно.
- Редове: Общите редове, които трябва да бъдат върнати.
Отворете обвивката на командния ред на MySQL и въведете паролата. Натиснете Enter, за да продължите.
Да предположим, че имате таблица, наречена „учител“ във вашата база данни MySQL, както е показано по-долу. Ако искате да извлечете всички записи или редове от тази таблица без ограничение, ще го направите, като използвате простата заявка SELECT, както следва:
>> ИЗБЕРЕТЕ * ОТ данни.учител;
Пример 01: ГРАНИЦА само с номер на ред:
Ако потребителят иска да извлече някои записи, докато ограничава броя на редовете, той / тя може да го направи, като използва простата клауза LIMIT в оператора SELECT. Нека опитаме пример, докато използваме горната таблица. Да предположим, че искате да покажете само 6 реда от горната таблица, докато показвате редовете, следващи низходящия ред на колона TeachName. Опитайте следната заявка:
>> ИЗБЕРЕТЕ * ОТ данни.учител ПОРЪЧКА ПО TeachName DESC LIMIT 6;
Пример 02: ГРАНИЦА С ОФСЕТ и номер на ред:
Нека опитаме същата таблица, за да дефинираме Offset заедно с номера на реда. Да предположим, че трябва да вземете само 6 записа от таблицата, докато върнатият запис трябва да започва от 6-тети ред на таблица. Опитайте следващата заявка:
>> ИЗБЕРЕТЕ * ОТ данни.учител DESC LIMIT 6, 6;
Пример 03: ОГРАНИЧЕНИЕ с клауза WHERE:
Да приемем, че таблицата „същото“ се намира в базата данни MySQL. Вземете цялата таблица, докато я сортирате във възходящ ред на колона 'id', като използвате командата SELECT заедно с ORDER BY, както следва:
>> ИЗБЕРЕТЕ * ОТ данни.същата ПОРЪЧКА ПО id ASC;
Опитвайки заявената заявка, ще имаме произволни три записа на възраст между 12 и 34 години от произволно произволно местоположение на таблицата. Докато в горната таблица имаме повече от 6 записа на възрастова група между 12 и 34 години.
>> ИЗБЕРЕТЕ * ОТ данни.същото WHERE възраст> '12' И възраст < '34' LIMIT 3;
Когато използваме клаузата ORDER BY в заявката, без да посочваме типа на поръчката, тя автоматично ще извлече записа във възходящ ред, както е показано по-долу.
>> ИЗБЕРЕТЕ * ОТ данни.същото WHERE възраст> '12' И възраст < '34' ORDER BY age LIMIT 3;
За да извлечете ограничен запис в друг ред на сортиране, трябва да определите реда за сортиране. Тъй като извличаме 8-редови данни, използвайки низходящ ред на колона „възраст“.
>> ИЗБЕРЕТЕ * ОТ данни.същото WHERE възраст> '12' И възраст < '34' ORDER BY age DESC LIMIT 8;
Нека вземем само 2 реда, където името на домашния любимец е „куче“. При изпълнението имаме само 1 резултат, тъй като знакът '=' търси точния модел и имаме само 1 запис на неговия модел.
>> ИЗБЕРЕТЕ * ОТ данни.същото КЪДЕ домашен любимец = 'куче' ПОРЪЧКА ПО id ГРАНИЦА 2;
Пример 04: ГРАНИЦА с клауза LIKE и това са заместващи символи:
Потърсихме модела „куче“ и получихме само 1 резултат. Докато имаме повече от 1 запис на „куче“ в таблицата. Сега ще извлечем тези записи, като използваме клаузата LIKE заедно с клаузата LIMIT. За да покажете единствените 5 записа в таблицата, където името на домашния любимец започва от 'd', опитайте заявката по-долу. Тъй като имаме само 2 записа за модел „куче“, затова имаме само 2.
>> ИЗБЕРЕТЕ * ОТ данни.същото КЪДЕ домашен любимец КАТО „d%“ ПОРЪЧКА ПО ID ГРАНИЦА 5;
Нека извлечем само 10 записа от таблицата, където домашният любимец трябва да има „r“ на всяко средно място на името му. Тъй като имаме кон, папагал и заек в домашните любимци, които имат името „r“ на тяхно име, затова имаме само 4 записа от тази заявка.
>> ИЗБЕРЕТЕ * ОТ данни.същото КЪДЕ домашен любимец КАТО „% r%“ ПОРЪЧКА ПО ID ГРАНИЦА 10;
За да получите 6 записа на таблицата, където името на домашния любимец трябва да има 't' в края, изпълнете заявената заявка в командния ред на SQL. Тук имаме 4 записа от тази заявка.
>> ИЗБЕРЕТЕ * ОТ данни.същото КЪДЕ домашен любимец КАТО „% t“ ПОРЪЧКА ПО ID ГРАНИЦА 6;
За да получите 8 записа на таблицата, където работата на човек трябва да има 'er' в края, изпълнете заявката по-долу в черупката. Тук имаме 6 записа от тази заявка.
>> ИЗБЕРЕТЕ * ОТ данни.същото КЪДЕ работа като „% er“ ПОРЪЧКА ПО ВЪЗРАСТ ASC ГРАНИЦА 8;
Нека променим клаузата WHERE заедно с израза LIKE в заявката SELECT. Да предположим, че искате да извлечете 6-редов запис от таблицата „същото“. Опитахте условие, за да извлечете единствените записи, където „fname“ трябва да има „a“ в последната от стойността си, а „lname“ трябва да има „a“ във всяко средно местоположение на стойността му. От друга страна, данните трябва да бъдат сортирани в низходящ ред на колоната „възраст“. За да получите тези 6 записа, изпълнете заявката по-долу в командния ред на SQL. Имаме 5 записа за това състояние и резултатът е показан по-долу.
>> ИЗБЕРЕТЕ * ОТ данни.същото КЪДЕ fname КАТО „% a“ И lname КАТО „% a%“ ПОРЪЧКА ПО ВЪЗРАСТ DESC ГРАНИЦА 5;
Заключение:
Надявам се, че сте напълно подготвени за темата LIMT, след като изпробвате почти всички примери за клаузата LIMIT, заедно с нейните членове, e.ж., Номер на отместването и реда.