728x90

https://www.postgresql.org/docs/current/functions-matching.html#FUNCTIONS-SIMILARTO-REGEXP

 

9.7. Pattern Matching

9.7. Pattern Matching 9.7.1. LIKE 9.7.2. SIMILAR TO Regular Expressions 9.7.3. POSIX Regular Expressions There are three separate approaches to pattern โ€ฆ

www.postgresql.org

 

[Postgre Document]

 

9.7.1.  LIKE

LIKE ์—ฐ์‚ฐ์ž๋Š” SQL ํ‘œ์ค€์— ๋”ฐ๋ผ ํŒจํ„ด์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

LIKE ํŒจํ„ด์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ๋ฌธ์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

string LIKE pattern [ESCAPE escape-character]
string NOT LIKE pattern [ESCAPE escape-character]

 

ํŒจํ„ด์— ํผ์„ผํŠธ ๊ธฐํ˜ธ(%) ๋˜๋Š” ๋ฐ‘์ค„ ๊ธฐํ˜ธ(_)์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ, ํŒจํ„ด์€ ๋ฌธ์ž์—ด ์ž์ฒด๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ, LIKE ์—ฐ์‚ฐ์ž๋Š” ๋“ฑํ˜ธ ์—ฐ์‚ฐ์ž์™€ ๊ฐ™์€ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ํŒจํ„ด ๋‚ด์˜ ๋ฐ‘์ค„ ๊ธฐํ˜ธ๋Š” ์–ด๋–ค ๋‹จ์ผ ๋ฌธ์ž์™€๋„ ์ผ์น˜ํ•˜๋ฉฐ, ํผ์„ผํŠธ ๊ธฐํ˜ธ๋Š” 0๊ฐœ ์ด์ƒ์˜ ๋ฌธ์ž์—ด๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.

 

 

LIKE ํŒจํ„ด ๋งค์นญ์€ ํ•ญ์ƒ ์ „์ฒด ๋ฌธ์ž์—ด์„ ๋Œ€์ƒ์œผ๋กœ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฌธ์ž์—ด ๋‚ด์—์„œ ์–ด๋А ์œ„์น˜์—์„œ๋„ ์ผ์น˜ํ•˜๋Š” ์‹œํ€€์Šค๋ฅผ ์ฐพ์œผ๋ ค๋ฉด ํŒจํ„ด์€ ๋ฐ˜๋“œ์‹œ ํผ์„ผํŠธ ๊ธฐํ˜ธ๋กœ ์‹œ์ž‘ํ•˜๊ณ  ๋๋‚˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

๋ฐ‘์ค„ ๊ธฐํ˜ธ๋‚˜ ํผ์„ผํŠธ ๊ธฐํ˜ธ๋ฅผ ๋‹ค๋ฅธ ๋ฌธ์ž์™€ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ผ์น˜์‹œํ‚ค๊ธฐ ์œ„ํ•ด, ํŒจํ„ด ๋‚ด์—์„œ ํ•ด๋‹น ๋ฌธ์ž ์•ž์— ESCAPE ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ESCAPE ๋ฌธ์ž๋Š” ๋ฐฑ์Šฌ๋ž˜์‹œ(backslash)์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ESCAPE ๋ฌธ์ž๋ฅผ ์„ ํƒํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ESCAPE ์ ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ESCAPE ๋ฌธ์ž๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ESCAPE ๋ฌธ์ž ์ž์ฒด์™€ ์ผ์น˜์‹œํ‚ค๊ธฐ ์œ„ํ•ด ESCAPE ๋ฌธ์ž๋ฅผ ๋‘ ๋ฒˆ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

๋”๋ณด๊ธฐ

Note 

standard_conforming_strings๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ, ๋ฆฌํ„ฐ๋Ÿด ๋ฌธ์ž์—ด ์ƒ์ˆ˜์—์„œ ์ž‘์„ฑํ•˜๋Š” ๋ฐฑ์Šฌ๋ž˜์‹œ๋Š” 2๊ฐœ๋กœ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ESCAPE ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ESCAPE ''์„ ์ž‘์„ฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํŒจํ„ด ๋‚ด์˜ ๋ฐ‘์ค„ ๊ธฐํ˜ธ์™€ ํผ์„ผํŠธ ๊ธฐํ˜ธ์˜ ํŠน๋ณ„ํ•œ ์˜๋ฏธ๋ฅผ ํ•ด์ œํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

SQL ํ‘œ์ค€์— ๋”ฐ๋ฅด๋ฉด, ESCAPE์„ ์ƒ๋žตํ•˜๋ฉด ESCAPE ๋ฌธ์ž๊ฐ€ ์—†์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค(๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐฑ์Šฌ๋ž˜์‹œ๊ฐ€ ์„ ํƒ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ). ๋˜ํ•œ, ESCAPE ๊ฐ’์˜ ๊ธธ์ด๊ฐ€ 0์ธ ๊ฒฝ์šฐ ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์ธก๋ฉด์—์„œ PostgreSQL์˜ ๋™์ž‘์€ ์•ฝ๊ฐ„ ๋น„ํ‘œ์ค€์ ์ž…๋‹ˆ๋‹ค.

 

๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๊ณ  ์ผ์น˜์‹œํ‚ค๊ธฐ ์œ„ํ•ด LIKE ๋Œ€์‹  ILIKE ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” SQL ํ‘œ์ค€์—๋Š” ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์ง€๋งŒ PostgreSQL์˜ ํ™•์žฅ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

 

+ ^@๋กœ ์‹œ์ž‘ํ•˜๋Š” ์—ฐ์‚ฐ์ž์™€ ํ•ด๋‹น starts_with() ํ•จ์ˆ˜๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋Š” ๋ฌธ์ž์—ด์˜ ์‹œ์ž‘ ๋ถ€๋ถ„๋งŒ ์ผ์น˜์‹œํ‚ค๋Š” ๊ฒฝ์šฐ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•
๋‹คํ–ˆ๋‹ค