https://www.postgresql.org/docs/current/functions-matching.html#FUNCTIONS-SIMILARTO-REGEXP
[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() ํจ์๋ ์ฌ์ฉํ ์ ์๋๋ฐ, ์ด๋ ๋ฌธ์์ด์ ์์ ๋ถ๋ถ๋ง ์ผ์น์ํค๋ ๊ฒฝ์ฐ์ ์ ์ฉํฉ๋๋ค.
'๐ข๏ธ Database' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SQL]Window ํจ์ First_value/Last_value ํ์ฉํ๊ธฐ (0) | 2023.08.26 |
---|---|
[SQL] LEFT, REPLACE, SUBSTRING (0) | 2023.08.21 |
[SQL] NULLIF, NVL(COALESCE) ํจ์ (0) | 2023.08.19 |
[SQL] Count ํจ์, Sequel vs SQL (0) | 2023.08.19 |
Apache Parquet(ํ์ผ์ด) (0) | 2023.08.14 |