logo

מגבלת MySQL

שאילתת MySQL Limit משמשת לְהַגבִּיל מספר השורות חוזר מערך התוצאות, במקום מַקסִים כל הסט במסד הנתונים של MySQL. סעיף ה-Limit עובד עם המשפט SELECT להחזרת מספר השורות שצוין בלבד. שאילתה זו מקבלת ארגומנט אחד או שניים בלבד, והערכים שלהם צריכים להיות אפס או כל מספר שלם חיובי.

זה חיוני במקרה כזה כאשר הטבלה מכילה אלפי שורות, או שאתה רוצה להחזיר רק את הנתונים שהוכנסו לאחרונה. במילים אחרות, אם אינך מעוניין לקבל את כל השורות שהוחזרו מהשאילתה, השתמש בסעיף MySQL Limit עם המשפט SELECT. זה משפר את ביצועי השאילתה ואפילו מפסיק את קריסת המערכת כאשר הטבלה מכילה מספר רב של נתונים.

כדי לקבל רק את השורות שצוינו מהטבלה, MySQL משתמש ב- לְהַגבִּיל סעיף, בעוד ש-SQL משתמש ב- חלק עליון סעיף, ואורקל משתמשת ב- ROWNUM סעיף עם ה בחר הַצהָרָה.

תחביר

להלן התחביר של השימוש ב-Limit query ב MySQL :

 SELECT column_list FROM table_name LIMIT offset, count; 

בתחביר לעיל, אנו יכולים לראות:

Column_list: זה שם העמודה שברצונך להחזיר.

שם שולחן: זה השם של הטבלה שמכילה את שם העמודה שלך.

לְקַזֵז: זה מציין את המספר של שורה שממנה ברצונך לחזור. ההיסט של השורה מתחיל מ-0, לא מ-1.

לספור: הוא מציין את המספר המרבי של שורות שברצונך להחזיר.

הייצוג החזותי הבא מסביר זאת בצורה ברורה יותר:

מגבלת MySQL

הערה: אם אתה מציין רק ארגומנט אחד עם משפט Limit, MySQL מניח זאת כדי לקבוע את המספר המרבי של שורות להחזרת פלט מערך התוצאות. במקרה זה, ארגומנטים של פסקת Limit, offset, והספירה שווה ערך.

סעיף LIMIT עם סעיף ORDER BY

המשתמש צריך להשתמש בסעיף Limit עם סעיף Order By. ללא שימוש בסעיף Order By, תקבל את התוצאה ב- סדר לא מוגדר . במקרה כזה, קשה לדעת שהשאילתה מחזירה תוצאה מאילו שורות. אז זה הרגל טוב להשתמש בו קבוצה לפי סעיף עם סעיף Limit לקבלת השורות בסדר מסוים.

ניתן להשתמש בתחביר הבא כדי לקבל את התוצאה בסדר ייחודי:

 SELECT column_list FROM table_name GROUP BY order_expression LIMIT offset, count; 

דוגמאות ל-MySQL Limit

הבה ניצור טבלה לדוגמה במסד הנתונים המכילה את הנתונים הבאים ונבין כיצד פועל סעיף Limit ב-MySQL באמצעות דוגמאות שונות:

טבלה: עובדים

מגבלת MySQL

1. MySQL Limit להחזרת השורות הגבוהות ביותר או הנמוכות ביותר

ההצהרה הבאה נהגה להשיג את חמשת העובדים הצעירים המובילים:

 SELECT * FROM employees ORDER BY emp_age LIMIT 5; 

הצהרה זו ממיינת תחילה את גיל העובד באמצעות סעיף Group By, ולאחר מכן סעיף Limit מחזיר את התוצאה של חמשת הראשונים. לאחר ביצוע השלבים לעיל, נקבל את הפלט הבא:

מגבלת MySQL

2. MySQL Limit כדי לקבל טווח של שורות באמצעות היסט

לפעמים אתה רוצה לקבל תוצאה בין טווחי הערכים. לדוגמה, יש לך מספר רב של שורות להצגת נתונים על יישומים, ואז מחלקים אותם לדפים, וכל עמוד מכיל לכל היותר 10 שורות בטבלה. במקרה כזה, תוכל להשתמש בשאילתה הבאה כדי לקבל טווח של שורות:

 SELECT emp_id, emp_name, income FROM employees ORDER BY income DESC LIMIT 3,7; 

הצהרה זו מחזירה את השורות החל משורה מספר 3 ועוברת לשורות 7 לכל היותר. זה גם ממיין את ההכנסה של העובד לפי הסדר הגבוה ביותר לנמוך ביותר. בצע את השאילתה ותקבל את הפלט הבא:

סרגל כלים מיני אקסל
מגבלת MySQL

3. MySQL Limit עם סעיף WHERE

ניתן לעבוד עם MySQL Limit גם עם סעיף WHERE. הוא בודק תחילה את התנאי שצוין בטבלה ומפיק את השורות שהתאימו לתנאי.

שאילתה זו בוחרת את חמשת העובדים הראשונים שגילם עולה על 30. כאן, השתמשנו גם בסעיף Order By כדי למיין את העובדים בסדר יורד תוך שימוש בהכנסה שלהם.

 SELECT emp_name, emp_age, income FROM employees WHERE emp_age>30 ORDER BY income DESC LIMIT 5; 

לאחר ביצוע מוצלח של ההצהרה לעיל, נקבל את הפלט הבא:

מגבלת MySQL

4. MySQL LIMIT כדי לקבל את הערך ה-n'י הגבוה ביותר או הנמוך ביותר

לפעמים אנחנו רוצים לקבל את השורות של הערך ה-n' הגבוה ביותר או הנמוך ביותר. במקרה זה, נוכל להשתמש בסעיף MySQL LIMIT הבא כדי לקבל את התוצאה הצפויה:

 SELECT column_list FROM table_name ORDER BY expression LIMIT n-1, 1; 

בתחביר זה, הסעיף LIMIT n-1, 1 מחזיר שורה אחת שמתחילה בשורה n.

לדוגמה, השאילתה הבאה מחזירה את פרטי העובד עם ההכנסה השנייה בגובהה:

 SELECT emp_name, city, income FROM employees ORDER BY income LIMIT 1, 1; 

ביצוע ההצהרה לעיל, זה ייתן את השאילתה הבאה:

מגבלת MySQL

יש לציין שהשאילתה שלעיל עובדת רק כאשר הטבלה שלך אינה מכילה שני עובדים שיש להם הכנסה מסוימת. במקרה כזה, נשתמש DENSE_RANK () כדי לקבל תוצאה מדויקת יותר.