βš™οΈ backend/πŸ›’οΈ database

[MySQL] REGEXP ν•¨μˆ˜λ₯Ό μ΄μš©ν•˜μ—¬ 숫자 λ˜λŠ” 문자만 μΆ”μΆœν•˜κΈ°

dev!n 2023. 3. 2. 23:03
Extracting Numbers or Non-Numeric Characters with MySQL.

MySQL의 REGEXP ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ¬Έμžμ—΄μ—μ„œ 숫자λ₯Ό μΆ”μΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€.

# 쿼리 μ˜ˆμ‹œ
SELECT REGEXP_REPLACE('abc123def456ghi789', '[^0-9]+', '') AS numbers;

param1) μž…λ ₯ λ¬Έμžμ—΄

param2) [^0-9]+ : μˆ«μžκ°€ μ•„λ‹Œ λͺ¨λ“  λ¬Έμžμ™€ μΌμΉ˜ν•˜λŠ” μ •κ·œμ‹

param3) μž…λ ₯ λ¬Έμžμ—΄μ—μ„œ μˆ«μžκ°€ μ•„λ‹Œ λͺ¨λ“  문자λ₯Ό λŒ€μ²΄ν•˜λŠ” 빈 λ¬Έμžμ—΄

# κ²°κ³Ό
'123456789'

λ°˜λŒ€λ‘œ μ •κ·œμ‹ [0-9]+으둜 숫자만 μΆ”μΆœν•  수 μžˆλ‹€.

MySQLμ—μ„œ REGEXP_REPLACE ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ¬Έμžμ—΄μ—μ„œ λͺ¨λ“  숫자λ₯Ό μ œκ±°ν•˜κ³  μˆ«μžκ°€ μ•„λ‹Œ 문자만 κ°€μ Έμ˜¬ 수 μžˆμŠ΅λ‹ˆλ‹€.

# 쿼리 μ˜ˆμ‹œ
SELECT REGEXP_REPLACE('abc123def456ghi789', '[0-9]+', '') AS letters;

param1) μž…λ ₯ λ¬Έμžμ—΄

param2) ν•˜λ‚˜ μ΄μƒμ˜ 숫자 μ‹œν€ΈμŠ€μ™€ μΌμΉ˜ν•˜λŠ” μ •κ·œμ‹ [0-9]+

param3) μž…λ ₯ λ¬Έμžμ—΄μ˜ λͺ¨λ“  숫자 μ‹œν€€μŠ€λ₯Ό λŒ€μ²΄ν•˜λŠ” 데 μ‚¬μš©

# κ²°κ³Ό
'abcdefghi'

μΆ”μΆœν•˜λ €λŠ” μˆ«μžκ°€ μ•„λ‹Œ 문자의 νŠΉμ • νŒ¨ν„΄κ³Ό μΌμΉ˜ν•˜λ„λ‘ μ •κ·œμ‹μ„ μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ λŒ€λ¬Έμžλ§Œ μΆ”μΆœν•˜λ €λŠ” 경우 μ •κ·œμ‹ [A-Z]+λ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ†Œλ¬Έμžλ„ ν¬ν•¨ν•˜λ €λ©΄ μ •κ·œμ‹ [a-zA-Z]+λ₯Ό μ‚¬μš©ν•˜λ©΄ λ©λ‹ˆλ‹€.