๋ด DB์์ SQL๋ช ๋ น์ด๋ก ํน์ ๋จ์ด๋ฅผ ์ฐพ์์ ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ
๐ก SQL์์ ํน์ ๋จ์ด๋ฅผ ์ฐพ์์ ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ (UPDATE + REPLACE ์ฌ์ฉ)
โ ์ฌ์ฉํ๋ SQL ๋ช ๋ น์ด:
- UPDATE → ํน์ ์ปฌ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝ
- SET → ๋ณ๊ฒฝํ ์ปฌ๋ผ ์ง์
- REPLACE() → ํน์ ๋จ์ด๋ฅผ ์ฐพ์์ ๋ณ๊ฒฝ
๐ ๊ธฐ๋ณธ์ ์ธ SQL UPDATE + REPLACE ๋ฌธ๋ฒ
UPDATE ํ
์ด๋ธ๋ช
SET ์ปฌ๋ผ๋ช
= REPLACE(์ปฌ๋ผ๋ช
, '์ฐพ์ ๋จ์ด', '๋ฐ๊ฟ ๋จ์ด')
WHERE ์ปฌ๋ผ๋ช
LIKE '%์ฐพ์ ๋จ์ด%';
โ REPLACE ํจ์๋ ํน์ ํ
์คํธ๋ฅผ ์ฐพ์ ๋ณ๊ฒฝํด ์ค๋๋ค.
โ WHERE ์ ์ ์ถ๊ฐํ์ฌ ์ํ๋ ๋ฐ์ดํฐ๋ง ๋ณ๊ฒฝํ ์๋ ์์ต๋๋ค.
๐ ์์ 1: ์ ํ ์ค๋ช ์์ ํน์ ๋จ์ด ๋ณ๊ฒฝ
๐ ์์ : product_description ์ปฌ๋ผ์์ "๊ตฌํ ๋ชจ๋ธ" → "์ ํ ๋ชจ๋ธ"๋ก ๋ณ๊ฒฝ
UPDATE products
SET product_description = REPLACE(product_description, '๊ตฌํ ๋ชจ๋ธ', '์ ํ ๋ชจ๋ธ')
WHERE product_description LIKE '%๊ตฌํ ๋ชจ๋ธ%';
๐จ ์ฃผ์: WHERE ์ ์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๋ชจ๋ ํ์์ ๋ณ๊ฒฝ๋๋ฏ๋ก, ํน์ ์กฐ๊ฑด์ ์ง์ ํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค.
๐ ์์ 2: ์ฌ์ฉ์ ์ด๋ฆ ๋ณ๊ฒฝ
๐ ์์ : users ํ ์ด๋ธ์์ "๊น์ฒ ์"๋ฅผ "๊น๋ฏผ์"๋ก ๋ณ๊ฒฝ
UPDATE users
SET name = REPLACE(name, '๊น์ฒ ์', '๊น๋ฏผ์')
WHERE name = '๊น์ฒ ์';
๐จ WHERE name = '๊น์ฒ ์' ์กฐ๊ฑด์ ์ฃผ๋ฉด ์ ํํ ์ผ์น ํญ๋ชฉ๋ง ๋ณ๊ฒฝํฉ๋๋ค.
๐ ์์ 3: ์ด๋ฉ์ผ ์ฃผ์ ๋ณ๊ฒฝ
๐ ์์ : email ์ปฌ๋ผ์์ "@oldmail.com" → "@newmail.com"์ผ๋ก ๋ณ๊ฒฝ
UPDATE users
SET email = REPLACE(email, '@oldmail.com', '@newmail.com')
WHERE email LIKE '%@oldmail.com';
๐จ ํน์ ๋๋ฉ์ธ์ ์ฌ์ฉํ๋ ์ด๋ฉ์ผ ์ฃผ์๋ฅผ ์ผ๊ด ๋ณ๊ฒฝํ ๋ ์ ์ฉํฉ๋๋ค.
๐ ์์ 4: ์ฌ๋ฌ ๊ฐ์ ๋จ์ด ๋์์ ๋ณ๊ฒฝํ๊ธฐ
๐ ์์ : "์์ธ" → "SEOUL", "๋ถ์ฐ" → "BUSAN"์ผ๋ก ๋ณ๊ฒฝ
UPDATE locations
SET city = REPLACE(REPLACE(city, '์์ธ', 'SEOUL'), '๋ถ์ฐ', 'BUSAN')
WHERE city IN ('์์ธ', '๋ถ์ฐ');
โ REPLACE()๋ฅผ ์ค์ฒฉํด์ ์ฌ๋ฌ ๊ฐ์ ๋จ์ด๋ฅผ ํ ๋ฒ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
๐ ์์ 5: ํน์ ํจํด์ ํฌํจํ๋ ๋ฐ์ดํฐ๋ง ๋ณ๊ฒฝํ๊ธฐ
๐ ์์ : ํน์ ์ ํ ์ฝ๋("ABC-")๊ฐ ํฌํจ๋ ์ ํ ์ค๋ช ์์ ๋จ์ด ๋ณ๊ฒฝ
UPDATE products
SET product_description = REPLACE(product_description, '์ค๋๋ ์ ํ', '์ต์ ์ ํ')
WHERE product_code LIKE 'ABC-%';
โ LIKE ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด ํน์ ํจํด์ ํฌํจํ๋ ๋ฐ์ดํฐ๋ง ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
๐ ์์ 6: ํน์ ์ปฌ๋ผ์์ NULL ๊ฐ ๋ฐฉ์งํ๊ณ ๋ณ๊ฒฝํ๊ธฐ
๐ NULL ๊ฐ์ด ์๋ ๊ฒฝ์ฐ REPLACE ์ฌ์ฉ ์ ์๋ฌ ๋ฐฉ์ง ๋ฐฉ๋ฒ
UPDATE articles
SET content = REPLACE(IFNULL(content, ''), '์คํ์์ ', '์ ํํ ๋ฌธ๊ตฌ')
WHERE content LIKE '%์คํ์์ %';
๐จ IFNULL(content, '')๋ฅผ ์ฌ์ฉํ๋ฉด NULL ๊ฐ์ ๋น ๋ฌธ์์ด๋ก ๋์ฒดํ์ฌ, REPLACE ์คํ ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์๋๋ก ๋ฐฉ์งํ ์ ์์ต๋๋ค.
๐ ์์ 7: ํน์ ๋ฌธ์์ด์ ์ ๊ฑฐ (๋น ๋ฌธ์์ด๋ก ๋ณ๊ฒฝ)
๐ ์์ : "์ญ์ ํ ๋ฌธ๊ตฌ"๋ฅผ ์์ ์ญ์ ํ๊ธฐ (๋น ๋ฌธ์์ด๋ก ๋์ฒด)
UPDATE blog_posts
SET content = REPLACE(content, '์ญ์ ํ ๋ฌธ๊ตฌ', '')
WHERE content LIKE '%์ญ์ ํ ๋ฌธ๊ตฌ%';
โ ํน์ ๋จ์ด๋ฅผ ์์ ํ ์ญ์ ํ๊ณ ์ถ์ ๋๋ ๋น ๋ฌธ์์ด('')๋ก ๋์ฒดํ๋ฉด ๋ฉ๋๋ค.
๐ ์์ฝ (ํต์ฌ SQL ํจํด)
๋ชฉ์ SQL ๋ช ๋ น์ดํน์ ๋จ์ด ๋ณ๊ฒฝ | REPLACE(์ปฌ๋ผ๋ช , '์ฐพ์ ๋จ์ด', '๋ฐ๊ฟ ๋จ์ด') |
ํน์ ํจํด์ด ํฌํจ๋ ๋ฐ์ดํฐ ๋ณ๊ฒฝ | WHERE ์ปฌ๋ผ๋ช LIKE '%๋จ์ด%' |
์ด๋ฉ์ผ ๋๋ฉ์ธ ๋ณ๊ฒฝ | REPLACE(email, '@old.com', '@new.com') |
์ฌ๋ฌ ๋จ์ด ๋์์ ๋ณ๊ฒฝ | REPLACE(REPLACE(์ปฌ๋ผ๋ช , 'A', 'B'), 'C', 'D') |
ํน์ ํจํด์ ํฌํจํ๋ ๊ฒฝ์ฐ๋ง ๋ณ๊ฒฝ | WHERE ์ปฌ๋ผ๋ช LIKE 'ABC-%' |
NULL ๊ฐ ๋ฐฉ์งํ๊ณ ๋ณ๊ฒฝ | REPLACE(IFNULL(์ปฌ๋ผ๋ช , ''), 'A', 'B') |
ํน์ ๋ฌธ์์ด ์ ๊ฑฐ | REPLACE(์ปฌ๋ผ๋ช , '์ญ์ ํ ๋จ์ด', '') |
โ ์ฃผ์ํ ์ :
- WHERE ์ ์ ๋ฐ๋์ ์ถ๊ฐํ์ฌ ๋ถํ์ํ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ ๋ฐฉ์งํ์ธ์.
- REPLACE()๋ ๋ถ๋ถ ๋ณ๊ฒฝ๋ง ๊ฐ๋ฅํ๋ฉฐ, ์์ ํ ์๋ก์ด ๊ฐ์ผ๋ก ๋ณ๊ฒฝํ๋ ค๋ฉด SET ์ปฌ๋ผ๋ช = '์๋ก์ด ๊ฐ'์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
- ๋ณ๊ฒฝ ์ ์ ๋ฐฑ์ ์ ์์ฑํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค.
๐ ์ถ๊ฐ ์ง๋ฌธ์ด ์๋ค๋ฉด ์ธ์ ๋ ์ง ๋ฌผ์ด๋ณด์ธ์! ๐