Skip to main content
select๋Š” ์กฐํšŒํ•  ํ•„๋“œ๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฉ”์„œ๋“œ์ž…๋‹ˆ๋‹ค. ํƒ€์ž… ์•ˆ์ „ํ•˜๊ฒŒ ํ•„๋“œ๋ฅผ ์„ ํƒํ•˜๊ณ , SQL ์ง‘๊ณ„ ํ•จ์ˆ˜ ๋ฐ ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•

์ „์ฒด ํ•„๋“œ ์กฐํšŒ

ํŠน์ • ํ•„๋“œ ์„ ํƒ

ํ•„๋“œ ๋ณ„์นญ (Alias)

SQL ์ง‘๊ณ„ ํ•จ์ˆ˜

Puri๋Š” ํƒ€์ž… ์•ˆ์ „ํ•œ SQL ํ•จ์ˆ˜๋“ค์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

COUNT

SUM, AVG, MAX, MIN

๋ฌธ์ž์—ด ํ•จ์ˆ˜

Raw SQL ํ‘œํ˜„์‹

๋ณต์žกํ•œ SQL ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํƒ€์ž…๋ณ„ Raw ํ•จ์ˆ˜

์ค‘์ฒฉ ๊ฐ์ฒด ์„ ํƒ

์ค‘์ฒฉ ๊ฐ์ฒด ๊ตฌ์กฐ๋กœ SELECT๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

appendSelect

๊ธฐ์กด SELECT์— ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
select()๋Š” ๊ธฐ์กด SELECT๋ฅผ ๋ฎ์–ด์“ฐ๊ณ , appendSelect()๋Š” ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

Full-Text Search ํ•จ์ˆ˜

ts_highlight (PostgreSQL)

PostgreSQL์˜ tsvector๋ฅผ ์‚ฌ์šฉํ•œ ํ•˜์ด๋ผ์ดํŒ…์ž…๋‹ˆ๋‹ค.
์˜ต์…˜:
  • parser: ์ฟผ๋ฆฌ ํŒŒ์„œ (๊ธฐ๋ณธ: "websearch_to_tsquery")
  • config: ํ…์ŠคํŠธ ๊ฒ€์ƒ‰ ์„ค์ • (๊ธฐ๋ณธ: "simple")
  • startSel: ์‹œ์ž‘ ํƒœ๊ทธ (๊ธฐ๋ณธ: "<b>")
  • stopSel: ์ข…๋ฃŒ ํƒœ๊ทธ (๊ธฐ๋ณธ: "</b>")
  • maxWords: ์ตœ๋Œ€ ๋‹จ์–ด ์ˆ˜
  • minWords: ์ตœ์†Œ ๋‹จ์–ด ์ˆ˜
  • maxFragments: ์ตœ๋Œ€ ์กฐ๊ฐ ์ˆ˜

ts_rank (PostgreSQL)

๊ฒ€์ƒ‰ ๊ด€๋ จ๋„ ์ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
์˜ต์…˜:
  • parser: ์ฟผ๋ฆฌ ํŒŒ์„œ (๊ธฐ๋ณธ: "websearch_to_tsquery")
  • config: ํ…์ŠคํŠธ ๊ฒ€์ƒ‰ ์„ค์ • (๊ธฐ๋ณธ: "simple")
  • weights: [D, C, B, A] ๊ฐ€์ค‘์น˜ ๋ฐฐ์—ด
  • normalization: ์ •๊ทœํ™” ์˜ต์…˜ (0-32)

PGroonga ํ•จ์ˆ˜

PGroonga ํ™•์žฅ์„ ์‚ฌ์šฉํ•œ ์ „๋ฌธ ๊ฒ€์ƒ‰์ž…๋‹ˆ๋‹ค.

pg_trgm ์œ ์‚ฌ๋„ ํ•จ์ˆ˜

PostgreSQL์˜ pg_trgm ํ™•์žฅ์ด ์ œ๊ณตํ•˜๋Š” ์œ ์‚ฌ๋„ ์ ์ˆ˜๋ฅผ SELECT์—์„œ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. whereFuzzy๋กœ ํ›„๋ณด๋ฅผ ํ•„ํ„ฐ๋งํ•œ ๋’ค, ์ด ํ•จ์ˆ˜๋“ค๋กœ ์ปฌ๋Ÿผ๋ณ„ ๊ฐ€์ค‘์น˜ ์ ์ˆ˜๋ฅผ ๋งค๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฐ€์ค‘์น˜ ์ ์ˆ˜ ๊ณ„์‚ฐ ์˜ˆ์‹œ: ์œ ์‚ฌ๋„ ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’(SqlExpression<"number">)์„ rawNumber์™€ ์กฐํ•ฉํ•˜์—ฌ ์ปฌ๋Ÿผ๋ณ„ ๊ฐ€์ค‘์น˜ ์ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ•จ์ˆ˜๋ณ„ ๋น„๊ต:
์ด ํ•จ์ˆ˜๋“ค์€ SqlExpression<"number">๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ select ๋‚ด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. pg_trgm ํ™•์žฅ์ด ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ „ ์˜ˆ์‹œ

ํƒ€์ž… ์•ˆ์ •์„ฑ

SELECT์˜ ๋ฐ˜ํ™˜ ํƒ€์ž…์€ ์ž๋™์œผ๋กœ ์ถ”๋ก ๋ฉ๋‹ˆ๋‹ค.

์ฃผ์˜์‚ฌํ•ญ

1. select vs appendSelect

2. ํ…Œ์ด๋ธ” ์ ‘๋‘์‚ฌ ํ•„์ˆ˜

3. Raw SQL ํƒ€์ž… ์ง€์ •

๋‹ค์Œ ๋‹จ๊ณ„

where

์กฐ๊ฑด ํ•„ํ„ฐ๋งํ•˜๊ธฐ

join

ํ…Œ์ด๋ธ” ์กฐ์ธํ•˜๊ธฐ

order-by

๊ฒฐ๊ณผ ์ •๋ ฌํ•˜๊ธฐ

advanced-methods

๊ณ ๊ธ‰ ์ฟผ๋ฆฌ ๋ฉ”์„œ๋“œ