📖
MySQL 테이블 컬럼 내용 변경 쿼리
페이지 정보
본문
테이블명 : write_board
컬럼명1 : subject
컬럼명2 : memo
변경내용 : 한국영화 - 시즌1 -> 한국영화 - 시즌2 로변경
내용은 write_board 테이블에서 subject와 memo 컬럼에 있는 "한국영화 - 시즌1"을 "한국영화 - 시즌2"로 바꾸는 것입니다.[code]UPDATE write_board
SET
subject = REPLACE(subject, '한국영화 - 시즌1', '한국영화 - 시즌2'),
memo = REPLACE(memo, '한국영화 - 시즌1', '한국영화 - 시즌2')
WHERE
subject LIKE '%한국영화 - 시즌1%'
OR memo LIKE '%한국영화 - 시즌1%';[/code]설명:
1. REPLACE(컬럼명, '찾을문자', '바꿀문자')를 사용해 문자열 내 일부를 변경합니다.
2. WHERE 조건으로 불필요한 모든 행에 영향을 주지 않도록 필터링했습니다.
3. 이렇게 하면 "한국영화 - 시즌1"이 포함된 부분만 "한국영화 - 시즌12"로 바뀝니다.
💡 참고:
만약 여러 시즌을 한 번에 - 시즌숫자 형식으로 바꾸고 싶으면 REGEXP_REPLACE를 사용하여 자동화할 수도 있습니다.
- 시즌숫자 부분을 자동으로 바꿀 수 있는 쿼리를 만들어 보겠습니다.
MySQL 8.0 이상에서는 REGEXP_REPLACE를 사용하여 쉽게 처리할 수 있습니다.[code]UPDATE write_board
SET
subject = REGEXP_REPLACE(subject, '한국영화 - 시즌[0-9]+', '한국영화 - 시즌2'),
memo = REGEXP_REPLACE(memo, '한국영화 - 시즌[0-9]+', '한국영화 - 시즌2')
WHERE
subject REGEXP '한국영화 - 시즌[0-9]+'
OR memo REGEXP '한국영화 - 시즌[0-9]+';[/code]설명:
1. '한국영화 - 시즌[0-9]+'
"한국영화 - 시즌" 뒤에 나오는 모든 숫자를 찾아서 매칭합니다.
2. REGEXP_REPLACE(컬럼, 패턴, 교체문자)
매칭된 부분을 "한국영화 - 시즌2"로 변경합니다.
3. WHERE 조건
변경이 필요한 행만 업데이트하여 불필요한 영향을 막습니다.
🍏 MySQL 5.x를 사용 중이라 REGEXP_REPLACE가 없다면,
REPLACE(subject, '한국영화 - 시즌1', '한국영화 - 시즌2')처럼 버전별로 직접 시즌 번호를 바꾸는 방식을 써야 합니다.
MySQL 5.x에서는 REGEXP_REPLACE가 없기 때문에, 각 시즌 번호를 직접 REPLACE로 바꾸는 방식을 사용해야 합니다.
예를 들어 "한국영화 - 시즌1" → "한국영화 - 시즌2"를 변경하려면:[code]UPDATE write_board
SET
subject = REPLACE(subject, '한국영화 - 시즌1', '한국영화 - 시즌2'),
memo = REPLACE(memo, '한국영화 - 시즌1', '한국영화 - 시즌2')
WHERE
subject LIKE '%한국영화 - 시즌1%'
OR memo LIKE '%한국영화 - 시즌1%';[/code]💡 만약 "시즌1", "시즌2", "시즌3" 등 여러 시즌을 한 번에 바꾸고 싶다면, 여러 REPLACE를 연속으로 적용할 수 있습니다. 예시:[code]UPDATE write_board
SET
subject = REPLACE(REPLACE(subject, '한국영화 - 시즌1', '한국영화 - 시즌2'),
'한국영화 - 시즌3', '한국영화 - 시즌4'),
memo = REPLACE(REPLACE(memo, '한국영화 - 시즌1', '한국영화 - 시즌2'),
'한국영화 - 시즌3', '한국영화 - 시즌4')
WHERE
subject LIKE '%한국영화 - 시즌1%'
OR subject LIKE '%한국영화 - 시즌3%'
OR memo LIKE '%한국영화 - 시즌1%'
OR memo LIKE '%한국영화 - 시즌3%';[/code]이 방식으로 원하는 시즌 번호들을 순차적으로 바꿀 수 있습니다.
MySQL 5.x에서는 정규식 기반 자동 변경이 불가능하므로, 여러 시즌을 한 번에 바꾸려면 중첩된 REPLACE를 사용하는 방식으로 처리해야 합니다.
예를 들어 "한국영화 - 시즌1" → "한국영화 - 시즌2", "한국영화 - 시즌3" → "한국영화 - 시즌4" 등 여러 시즌을 한 번에 바꾸는 예시는 다음과 같습니다.[code]UPDATE write_board
SET
subject = REPLACE(
REPLACE(
REPLACE(subject, '한국영화 - 시즌1', '한국영화 - 시즌2'),
'한국영화 - 시즌3', '한국영화 - 시즌4'
),
'한국영화 - 시즌5', '한국영화 - 시즌6'
),
memo = REPLACE(
REPLACE(
REPLACE(memo, '한국영화 - 시즌1', '한국영화 - 시즌2'),
'한국영화 - 시즌3', '한국영화 - 시즌4'
),
'한국영화 - 시즌5', '한국영화 - 시즌6'
)
WHERE
subject LIKE '%한국영화 - 시즌1%'
OR subject LIKE '%한국영화 - 시즌3%'
OR subject LIKE '%한국영화 - 시즌5%'
OR memo LIKE '%한국영화 - 시즌1%'
OR memo LIKE '%한국영화 - 시즌3%'
OR memo LIKE '%한국영화 - 시즌5%';[/code]⚡ 사용 팁
1. REPLACE를 여러 번 중첩하면 원하는 모든 시즌을 한 번에 바꿀 수 있습니다.
2. WHERE 조건도 해당 시즌을 모두 포함하도록 추가해야 불필요한 행을 건드리지 않습니다.
3. 시즌이 많다면, **자동으로 REPLACE 쿼리를 생성하는 스크립트(PHP 등)**을 만들어 반복 입력을 줄이는 것이 편리합니다.
🍏 MySQL 5.x에서 여러 시즌을 쉽게 바꾸도록 PHP로 자동 쿼리 생성기를 만들어 보겠습니다.
아래 스크립트는 write_board 테이블의 subject와 memo 컬럼에서 "한국영화 - 시즌1"부터 원하는 최대 시즌까지, 순차적으로 다음 시즌으로 바꾸는 UPDATE 쿼리를 자동 생성합니다.[code]<?php
$table = 'write_board';
$columns = ['subject', 'memo'];
$base_name = '한국영화';
$max_season = 20; // 바꿀 최대 시즌 번호
$replace_queries = [];
$where_clauses = [];
foreach ($columns as $col) {
$replace_expr = $col;
$where_parts = [];
for ($i = 1; $i < $max_season; $i++) {
$search = "$base_name - 시즌$i";
$replace = "$base_name - 시즌" . ($i + 1);
$replace_expr = "REPLACE($replace_expr, '$search', '$replace')";
$where_parts[] = "$col LIKE '%$search%'";
}
$replace_queries[$col] = $replace_expr;
$where_clauses = array_merge($where_clauses, $where_parts);
}
// 최종 쿼리 생성
$update_sql = "UPDATE $table SET \n";
$set_lines = [];
foreach ($replace_queries as $col => $expr) {
$set_lines[] = "$col = $expr";
}
$update_sql .= implode(",\n", $set_lines);
$update_sql .= "\nWHERE " . implode(" OR ", $where_clauses) . ";";
echo $update_sql;[/code]🔹 사용법
1. $max_season 값을 바꾸면 시즌 범위를 쉽게 조정 가능
2. $columns 배열에 다른 컬럼명을 추가하면 여러 컬럼을 동시에 처리
3. 실행하면 완전한 UPDATE 쿼리를 출력 → MySQL에서 바로 실행 가능
PHP 스크립트를 실행 결과:[code]UPDATE write_board SET
subject = REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
subject, '한국영화 - 시즌1', '한국영화 - 시즌2'),
'한국영화 - 시즌2', '한국영화 - 시즌3'),
'한국영화 - 시즌3', '한국영화 - 시즌4'),
'한국영화 - 시즌4', '한국영화 - 시즌5'),
'한국영화 - 시즌5', '한국영화 - 시즌6'),
'한국영화 - 시즌6', '한국영화 - 시즌7'),
'한국영화 - 시즌7', '한국영화 - 시즌8'),
'한국영화 - 시즌8', '한국영화 - 시즌9'),
'한국영화 - 시즌9', '한국영화 - 시즌10'),
'한국영화 - 시즌10', '한국영화 - 시즌11'),
'한국영화 - 시즌11', '한국영화 - 시즌12'),
'한국영화 - 시즌12', '한국영화 - 시즌13'),
'한국영화 - 시즌13', '한국영화 - 시즌14'),
'한국영화 - 시즌14', '한국영화 - 시즌15'),
'한국영화 - 시즌15', '한국영화 - 시즌16'),
'한국영화 - 시즌16', '한국영화 - 시즌17'),
'한국영화 - 시즌17', '한국영화 - 시즌18'),
'한국영화 - 시즌18', '한국영화 - 시즌19'),
'한국영화 - 시즌19', '한국영화 - 시즌20'),
memo = REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
memo, '한국영화 - 시즌1', '한국영화 - 시즌2'),
'한국영화 - 시즌2', '한국영화 - 시즌3'),
'한국영화 - 시즌3', '한국영화 - 시즌4'),
'한국영화 - 시즌4', '한국영화 - 시즌5'),
'한국영화 - 시즌5', '한국영화 - 시즌6'),
'한국영화 - 시즌6', '한국영화 - 시즌7'),
'한국영화 - 시즌7', '한국영화 - 시즌8'),
'한국영화 - 시즌8', '한국영화 - 시즌9'),
'한국영화 - 시즌9', '한국영화 - 시즌10'),
'한국영화 - 시즌10', '한국영화 - 시즌11'),
'한국영화 - 시즌11', '한국영화 - 시즌12'),
'한국영화 - 시즌12', '한국영화 - 시즌13'),
'한국영화 - 시즌13', '한국영화 - 시즌14'),
'한국영화 - 시즌14', '한국영화 - 시즌15'),
'한국영화 - 시즌15', '한국영화 - 시즌16'),
'한국영화 - 시즌16', '한국영화 - 시즌17'),
'한국영화 - 시즌17', '한국영화 - 시즌18'),
'한국영화 - 시즌18', '한국영화 - 시즌19'),
'한국영화 - 시즌19', '한국영화 - 시즌20')
WHERE
subject LIKE '%한국영화 - 시즌1%'
OR subject LIKE '%한국영화 - 시즌2%'
OR subject LIKE '%한국영화 - 시즌3%'
OR subject LIKE '%한국영화 - 시즌4%'
OR subject LIKE '%한국영화 - 시즌5%'
OR subject LIKE '%한국영화 - 시즌6%'
OR subject LIKE '%한국영화 - 시즌7%'
OR subject LIKE '%한국영화 - 시즌8%'
OR subject LIKE '%한국영화 - 시즌9%'
OR subject LIKE '%한국영화 - 시즌10%'
OR subject LIKE '%한국영화 - 시즌11%'
OR subject LIKE '%한국영화 - 시즌12%'
OR subject LIKE '%한국영화 - 시즌13%'
OR subject LIKE '%한국영화 - 시즌14%'
OR subject LIKE '%한국영화 - 시즌15%'
OR subject LIKE '%한국영화 - 시즌16%'
OR subject LIKE '%한국영화 - 시즌17%'
OR subject LIKE '%한국영화 - 시즌18%'
OR subject LIKE '%한국영화 - 시즌19%'
OR memo LIKE '%한국영화 - 시즌1%'
OR memo LIKE '%한국영화 - 시즌2%'
OR memo LIKE '%한국영화 - 시즌3%'
OR memo LIKE '%한국영화 - 시즌4%'
OR memo LIKE '%한국영화 - 시즌5%'
OR memo LIKE '%한국영화 - 시즌6%'
OR memo LIKE '%한국영화 - 시즌7%'
OR memo LIKE '%한국영화 - 시즌8%'
OR memo LIKE '%한국영화 - 시즌9%'
OR memo LIKE '%한국영화 - 시즌10%'
OR memo LIKE '%한국영화 - 시즌11%'
OR memo LIKE '%한국영화 - 시즌12%'
OR memo LIKE '%한국영화 - 시즌13%'
OR memo LIKE '%한국영화 - 시즌14%'
OR memo LIKE '%한국영화 - 시즌15%'
OR memo LIKE '%한국영화 - 시즌16%'
OR memo LIKE '%한국영화 - 시즌17%'
OR memo LIKE '%한국영화 - 시즌18%'
OR memo LIKE '%한국영화 - 시즌19%';[/code]✅ 특징:
1. subject와 memo 컬럼 모두 한 번에 처리
2. 시즌1~19까지 순차적으로 시즌2~20으로 변경
3. MySQL 5.x에서도 실행 가능
🍏 시즌 범위만 지정하면 자동으로 MySQL 5.x용 UPDATE 쿼리를 생성하도록 만들어 보겠습니다.[code]<?php
$table = 'write_board'; // 테이블명
$columns = ['subject', 'memo']; // 업데이트할 컬럼
$base_name = '한국영화'; // 기본 이름
$max_season = 20; // 마지막 시즌 번호
$set_lines = [];
$where_clauses = [];
// 각 컬럼별로 REPLACE 쿼리 생성
foreach ($columns as $col) {
for ($i = 1; $i < $max_season; $i++) {
$search = "$base_name - 시즌$i";
$replace = "$base_name - 시즌" . ($i + 1);
$set_lines[] = "$col = REPLACE($col, '$search', '$replace')";
}
$where_clauses[] = "$col LIKE '%$base_name - 시즌%'";
}
// 최종 쿼리 조합
$update_sql = "UPDATE $table SET\n";
$update_sql .= implode(",\n", $set_lines);
$update_sql .= "\nWHERE " . implode(" OR ", $where_clauses) . ";";
echo $update_sql;[/code]🔹 사용법
1. $max_season만 변경하면 시즌 범위가 자동으로 적용됩니다.
2. $columns 배열에 컬럼명을 추가하면 여러 컬럼 동시 처리 가능
3. 실행하면 MySQL에서 바로 실행 가능한 UPDATE 쿼리를 출력
컬럼명1 : subject
컬럼명2 : memo
변경내용 : 한국영화 - 시즌1 -> 한국영화 - 시즌2 로변경
내용은 write_board 테이블에서 subject와 memo 컬럼에 있는 "한국영화 - 시즌1"을 "한국영화 - 시즌2"로 바꾸는 것입니다.[code]UPDATE write_board
SET
subject = REPLACE(subject, '한국영화 - 시즌1', '한국영화 - 시즌2'),
memo = REPLACE(memo, '한국영화 - 시즌1', '한국영화 - 시즌2')
WHERE
subject LIKE '%한국영화 - 시즌1%'
OR memo LIKE '%한국영화 - 시즌1%';[/code]설명:
1. REPLACE(컬럼명, '찾을문자', '바꿀문자')를 사용해 문자열 내 일부를 변경합니다.
2. WHERE 조건으로 불필요한 모든 행에 영향을 주지 않도록 필터링했습니다.
3. 이렇게 하면 "한국영화 - 시즌1"이 포함된 부분만 "한국영화 - 시즌12"로 바뀝니다.
💡 참고:
만약 여러 시즌을 한 번에 - 시즌숫자 형식으로 바꾸고 싶으면 REGEXP_REPLACE를 사용하여 자동화할 수도 있습니다.
- 시즌숫자 부분을 자동으로 바꿀 수 있는 쿼리를 만들어 보겠습니다.
MySQL 8.0 이상에서는 REGEXP_REPLACE를 사용하여 쉽게 처리할 수 있습니다.[code]UPDATE write_board
SET
subject = REGEXP_REPLACE(subject, '한국영화 - 시즌[0-9]+', '한국영화 - 시즌2'),
memo = REGEXP_REPLACE(memo, '한국영화 - 시즌[0-9]+', '한국영화 - 시즌2')
WHERE
subject REGEXP '한국영화 - 시즌[0-9]+'
OR memo REGEXP '한국영화 - 시즌[0-9]+';[/code]설명:
1. '한국영화 - 시즌[0-9]+'
"한국영화 - 시즌" 뒤에 나오는 모든 숫자를 찾아서 매칭합니다.
2. REGEXP_REPLACE(컬럼, 패턴, 교체문자)
매칭된 부분을 "한국영화 - 시즌2"로 변경합니다.
3. WHERE 조건
변경이 필요한 행만 업데이트하여 불필요한 영향을 막습니다.
🍏 MySQL 5.x를 사용 중이라 REGEXP_REPLACE가 없다면,
REPLACE(subject, '한국영화 - 시즌1', '한국영화 - 시즌2')처럼 버전별로 직접 시즌 번호를 바꾸는 방식을 써야 합니다.
MySQL 5.x에서는 REGEXP_REPLACE가 없기 때문에, 각 시즌 번호를 직접 REPLACE로 바꾸는 방식을 사용해야 합니다.
예를 들어 "한국영화 - 시즌1" → "한국영화 - 시즌2"를 변경하려면:[code]UPDATE write_board
SET
subject = REPLACE(subject, '한국영화 - 시즌1', '한국영화 - 시즌2'),
memo = REPLACE(memo, '한국영화 - 시즌1', '한국영화 - 시즌2')
WHERE
subject LIKE '%한국영화 - 시즌1%'
OR memo LIKE '%한국영화 - 시즌1%';[/code]💡 만약 "시즌1", "시즌2", "시즌3" 등 여러 시즌을 한 번에 바꾸고 싶다면, 여러 REPLACE를 연속으로 적용할 수 있습니다. 예시:[code]UPDATE write_board
SET
subject = REPLACE(REPLACE(subject, '한국영화 - 시즌1', '한국영화 - 시즌2'),
'한국영화 - 시즌3', '한국영화 - 시즌4'),
memo = REPLACE(REPLACE(memo, '한국영화 - 시즌1', '한국영화 - 시즌2'),
'한국영화 - 시즌3', '한국영화 - 시즌4')
WHERE
subject LIKE '%한국영화 - 시즌1%'
OR subject LIKE '%한국영화 - 시즌3%'
OR memo LIKE '%한국영화 - 시즌1%'
OR memo LIKE '%한국영화 - 시즌3%';[/code]이 방식으로 원하는 시즌 번호들을 순차적으로 바꿀 수 있습니다.
MySQL 5.x에서는 정규식 기반 자동 변경이 불가능하므로, 여러 시즌을 한 번에 바꾸려면 중첩된 REPLACE를 사용하는 방식으로 처리해야 합니다.
예를 들어 "한국영화 - 시즌1" → "한국영화 - 시즌2", "한국영화 - 시즌3" → "한국영화 - 시즌4" 등 여러 시즌을 한 번에 바꾸는 예시는 다음과 같습니다.[code]UPDATE write_board
SET
subject = REPLACE(
REPLACE(
REPLACE(subject, '한국영화 - 시즌1', '한국영화 - 시즌2'),
'한국영화 - 시즌3', '한국영화 - 시즌4'
),
'한국영화 - 시즌5', '한국영화 - 시즌6'
),
memo = REPLACE(
REPLACE(
REPLACE(memo, '한국영화 - 시즌1', '한국영화 - 시즌2'),
'한국영화 - 시즌3', '한국영화 - 시즌4'
),
'한국영화 - 시즌5', '한국영화 - 시즌6'
)
WHERE
subject LIKE '%한국영화 - 시즌1%'
OR subject LIKE '%한국영화 - 시즌3%'
OR subject LIKE '%한국영화 - 시즌5%'
OR memo LIKE '%한국영화 - 시즌1%'
OR memo LIKE '%한국영화 - 시즌3%'
OR memo LIKE '%한국영화 - 시즌5%';[/code]⚡ 사용 팁
1. REPLACE를 여러 번 중첩하면 원하는 모든 시즌을 한 번에 바꿀 수 있습니다.
2. WHERE 조건도 해당 시즌을 모두 포함하도록 추가해야 불필요한 행을 건드리지 않습니다.
3. 시즌이 많다면, **자동으로 REPLACE 쿼리를 생성하는 스크립트(PHP 등)**을 만들어 반복 입력을 줄이는 것이 편리합니다.
🍏 MySQL 5.x에서 여러 시즌을 쉽게 바꾸도록 PHP로 자동 쿼리 생성기를 만들어 보겠습니다.
아래 스크립트는 write_board 테이블의 subject와 memo 컬럼에서 "한국영화 - 시즌1"부터 원하는 최대 시즌까지, 순차적으로 다음 시즌으로 바꾸는 UPDATE 쿼리를 자동 생성합니다.[code]<?php
$table = 'write_board';
$columns = ['subject', 'memo'];
$base_name = '한국영화';
$max_season = 20; // 바꿀 최대 시즌 번호
$replace_queries = [];
$where_clauses = [];
foreach ($columns as $col) {
$replace_expr = $col;
$where_parts = [];
for ($i = 1; $i < $max_season; $i++) {
$search = "$base_name - 시즌$i";
$replace = "$base_name - 시즌" . ($i + 1);
$replace_expr = "REPLACE($replace_expr, '$search', '$replace')";
$where_parts[] = "$col LIKE '%$search%'";
}
$replace_queries[$col] = $replace_expr;
$where_clauses = array_merge($where_clauses, $where_parts);
}
// 최종 쿼리 생성
$update_sql = "UPDATE $table SET \n";
$set_lines = [];
foreach ($replace_queries as $col => $expr) {
$set_lines[] = "$col = $expr";
}
$update_sql .= implode(",\n", $set_lines);
$update_sql .= "\nWHERE " . implode(" OR ", $where_clauses) . ";";
echo $update_sql;[/code]🔹 사용법
1. $max_season 값을 바꾸면 시즌 범위를 쉽게 조정 가능
2. $columns 배열에 다른 컬럼명을 추가하면 여러 컬럼을 동시에 처리
3. 실행하면 완전한 UPDATE 쿼리를 출력 → MySQL에서 바로 실행 가능
PHP 스크립트를 실행 결과:[code]UPDATE write_board SET
subject = REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
subject, '한국영화 - 시즌1', '한국영화 - 시즌2'),
'한국영화 - 시즌2', '한국영화 - 시즌3'),
'한국영화 - 시즌3', '한국영화 - 시즌4'),
'한국영화 - 시즌4', '한국영화 - 시즌5'),
'한국영화 - 시즌5', '한국영화 - 시즌6'),
'한국영화 - 시즌6', '한국영화 - 시즌7'),
'한국영화 - 시즌7', '한국영화 - 시즌8'),
'한국영화 - 시즌8', '한국영화 - 시즌9'),
'한국영화 - 시즌9', '한국영화 - 시즌10'),
'한국영화 - 시즌10', '한국영화 - 시즌11'),
'한국영화 - 시즌11', '한국영화 - 시즌12'),
'한국영화 - 시즌12', '한국영화 - 시즌13'),
'한국영화 - 시즌13', '한국영화 - 시즌14'),
'한국영화 - 시즌14', '한국영화 - 시즌15'),
'한국영화 - 시즌15', '한국영화 - 시즌16'),
'한국영화 - 시즌16', '한국영화 - 시즌17'),
'한국영화 - 시즌17', '한국영화 - 시즌18'),
'한국영화 - 시즌18', '한국영화 - 시즌19'),
'한국영화 - 시즌19', '한국영화 - 시즌20'),
memo = REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
memo, '한국영화 - 시즌1', '한국영화 - 시즌2'),
'한국영화 - 시즌2', '한국영화 - 시즌3'),
'한국영화 - 시즌3', '한국영화 - 시즌4'),
'한국영화 - 시즌4', '한국영화 - 시즌5'),
'한국영화 - 시즌5', '한국영화 - 시즌6'),
'한국영화 - 시즌6', '한국영화 - 시즌7'),
'한국영화 - 시즌7', '한국영화 - 시즌8'),
'한국영화 - 시즌8', '한국영화 - 시즌9'),
'한국영화 - 시즌9', '한국영화 - 시즌10'),
'한국영화 - 시즌10', '한국영화 - 시즌11'),
'한국영화 - 시즌11', '한국영화 - 시즌12'),
'한국영화 - 시즌12', '한국영화 - 시즌13'),
'한국영화 - 시즌13', '한국영화 - 시즌14'),
'한국영화 - 시즌14', '한국영화 - 시즌15'),
'한국영화 - 시즌15', '한국영화 - 시즌16'),
'한국영화 - 시즌16', '한국영화 - 시즌17'),
'한국영화 - 시즌17', '한국영화 - 시즌18'),
'한국영화 - 시즌18', '한국영화 - 시즌19'),
'한국영화 - 시즌19', '한국영화 - 시즌20')
WHERE
subject LIKE '%한국영화 - 시즌1%'
OR subject LIKE '%한국영화 - 시즌2%'
OR subject LIKE '%한국영화 - 시즌3%'
OR subject LIKE '%한국영화 - 시즌4%'
OR subject LIKE '%한국영화 - 시즌5%'
OR subject LIKE '%한국영화 - 시즌6%'
OR subject LIKE '%한국영화 - 시즌7%'
OR subject LIKE '%한국영화 - 시즌8%'
OR subject LIKE '%한국영화 - 시즌9%'
OR subject LIKE '%한국영화 - 시즌10%'
OR subject LIKE '%한국영화 - 시즌11%'
OR subject LIKE '%한국영화 - 시즌12%'
OR subject LIKE '%한국영화 - 시즌13%'
OR subject LIKE '%한국영화 - 시즌14%'
OR subject LIKE '%한국영화 - 시즌15%'
OR subject LIKE '%한국영화 - 시즌16%'
OR subject LIKE '%한국영화 - 시즌17%'
OR subject LIKE '%한국영화 - 시즌18%'
OR subject LIKE '%한국영화 - 시즌19%'
OR memo LIKE '%한국영화 - 시즌1%'
OR memo LIKE '%한국영화 - 시즌2%'
OR memo LIKE '%한국영화 - 시즌3%'
OR memo LIKE '%한국영화 - 시즌4%'
OR memo LIKE '%한국영화 - 시즌5%'
OR memo LIKE '%한국영화 - 시즌6%'
OR memo LIKE '%한국영화 - 시즌7%'
OR memo LIKE '%한국영화 - 시즌8%'
OR memo LIKE '%한국영화 - 시즌9%'
OR memo LIKE '%한국영화 - 시즌10%'
OR memo LIKE '%한국영화 - 시즌11%'
OR memo LIKE '%한국영화 - 시즌12%'
OR memo LIKE '%한국영화 - 시즌13%'
OR memo LIKE '%한국영화 - 시즌14%'
OR memo LIKE '%한국영화 - 시즌15%'
OR memo LIKE '%한국영화 - 시즌16%'
OR memo LIKE '%한국영화 - 시즌17%'
OR memo LIKE '%한국영화 - 시즌18%'
OR memo LIKE '%한국영화 - 시즌19%';[/code]✅ 특징:
1. subject와 memo 컬럼 모두 한 번에 처리
2. 시즌1~19까지 순차적으로 시즌2~20으로 변경
3. MySQL 5.x에서도 실행 가능
🍏 시즌 범위만 지정하면 자동으로 MySQL 5.x용 UPDATE 쿼리를 생성하도록 만들어 보겠습니다.[code]<?php
$table = 'write_board'; // 테이블명
$columns = ['subject', 'memo']; // 업데이트할 컬럼
$base_name = '한국영화'; // 기본 이름
$max_season = 20; // 마지막 시즌 번호
$set_lines = [];
$where_clauses = [];
// 각 컬럼별로 REPLACE 쿼리 생성
foreach ($columns as $col) {
for ($i = 1; $i < $max_season; $i++) {
$search = "$base_name - 시즌$i";
$replace = "$base_name - 시즌" . ($i + 1);
$set_lines[] = "$col = REPLACE($col, '$search', '$replace')";
}
$where_clauses[] = "$col LIKE '%$base_name - 시즌%'";
}
// 최종 쿼리 조합
$update_sql = "UPDATE $table SET\n";
$update_sql .= implode(",\n", $set_lines);
$update_sql .= "\nWHERE " . implode(" OR ", $where_clauses) . ";";
echo $update_sql;[/code]🔹 사용법
1. $max_season만 변경하면 시즌 범위가 자동으로 적용됩니다.
2. $columns 배열에 컬럼명을 추가하면 여러 컬럼 동시 처리 가능
3. 실행하면 MySQL에서 바로 실행 가능한 UPDATE 쿼리를 출력
댓글목록
등록된 댓글이 없습니다.
![]() ![]() |