DBMS/MySQL

[MYSQL] ๐Ÿ“š LIMIT / OFFSET ์ฟผ๋ฆฌ

์ธํŒŒ_ 2021. 11. 9. 02:01

๋งˆ์ดsql

 

limit

  • ๊ฒฐ๊ณผ ์ค‘ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ช‡๊ฐœ๋งŒ ๊ฐ€์ ธ์˜ค๊ธฐ
SELECT * FROM ํ…Œ์ด๋ธ”๋ช… LIMIT 10; -- ์ฒ˜์Œ ๋ถ€ํ„ฐ 10๊ฐœ๋งŒ ์ถœ๋ ฅํ•˜๊ธฐ (1 ~ 10)

SELECT * FROM ํ…Œ์ด๋ธ”๋ช… LIMIT 100, 10; -- 100๋ฒˆ์งธ๋ถ€ํ„ฐ ๊ทธ ํ›„ 10๊ฐœ ์ถœ๋ ฅํ•˜๊ธฐ (101 ~ 110)

offest

  • ์–ด๋””์„œ ๋ถ€ํ„ฐ ๊ฐ€์ ธ์˜ฌ์ง€
SELECT * FROM ํ…Œ์ด๋ธ”๋ช… ORDERS LIMIT 20 OFFSET 5; -- 5๋ฒˆ์งธ ํ–‰ ๋ถ€ํ„ฐ 25ํ–‰ ๊นŒ์ง€ ์ถœ๋ ฅ (6 ~ 25)

-- limit 5, 20 ๊ณผ ๊ฐ™๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.
SELECT * FROM ํ…Œ์ด๋ธ”๋ช… ORDERS LIMIT 5, 20

ํŽ˜์ด์ง• ์ฒ˜๋ฆฌํ•˜๊ธฐ

์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค๋‹ค๋ณด๋ฉด ๋ฌด์กฐ๊ฑด ์ตœ์†Œ ํ•œ๋ฒˆ์€ Paging ์„ ์ฒ˜๋ฆฌํ•ด์•ผํ•˜๋Š” ํ™”๋ฉด์ด ์žˆ๋‹ค.

Mysql ์—์„œ๋Š” Limit ๊ณผ offset ์„ ์ œ๊ณตํ•˜์—ฌ ํ›จ์”ฌ ๋น ๋ฅด๊ฒŒ ์›ํ•˜๋Š” ์œ„์น˜์—์„œ ์›ํ•˜๋Š” ๋งŒํผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

SELECT *
  FROM dbtable
  WHERE status = 'Y'
  ORDER BY CODE 
  LIMIT 20 OFFSET 0

Limit ์€ ๊ฐ€์ ธ์˜ฌ ๋ฐ์ดํ„ฐ ์–‘

offset ์€ ๊ฐ€์ ธ์˜ฌ ๋ฐ์ดํ„ฐ์˜ ์ดˆ๊ธฐ ์œ„์น˜๊ฐ’์ด๋‹ค.

์ฆ‰, 0(์ฒ˜์Œ) ์—์„œ๋ถ€ํ„ฐ 20๊ฑด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์˜ค๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค.

 

Paging ์„ ํ•˜๊ธฐ์œ„ํ•ด์„œ 0 ๋ถ€๋ถ„์„ ๋ณ€์ˆ˜๋กœ ์ง€์ •ํ•˜์—ฌ, ํŽ˜์ด์ง€๋ฅผ ์ด๋™ํ• ๋•Œ๋งˆ๋‹ค ํ•ด๋‹น ํŽ˜์ด์ง€์˜ offset ๊ฐ’์„ ๊ณ„์‚ฐํ•˜์—ฌ ์ง€์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.