MySQL에서 HTML 태그를 제거하고 내용만 가져오려면 `REPLACE`와 `REGEXP_REPLACE` 함수를 사용할 수 있습니다. 그러나 `REGEXP_REPLACE` 함수는 MySQL 8.0 이상에서만 사용할 수 있습니다.
**MySQL 8.0 이상: REGEXP_REPLACE 사용**
MySQL 8.0 이상에서는 `REGEXP_REPLACE` 함수를 사용하여 HTML 태그를 제거할 수 있습니다. 예를 들어, `content`라는 열에 저장된 HTML을 제거하려면 다음과 같이 쿼리를 작성할 수 있습니다.
```sql
SELECT REGEXP_REPLACE(content, '<[^>]+>', '') AS stripped_content
FROM your_table;
```
이 쿼리에서는 정규 표현식 '<[^>]+>'를 사용하여 HTML 태그를 찾고, 빈 문자열('')로 대체하여 제거합니다.
**MySQL 8.0 미만: REPLACE와 사용자 정의 함수 사용**
MySQL 8.0 미만에서는 `REGEXP_REPLACE` 함수를 사용할 수 없으므로, 사용자 정의 함수를 만들어 HTML 태그를 제거할 수 있습니다. 다음은 HTML 태그를 제거하는 사용자 정의 함수를 만드는 예입니다.
```sql
DELIMITER $$
CREATE FUNCTION strip_tags(html TEXT) RETURNS TEXT
BEGIN
DECLARE start INT, end INT;
SET start = LOCATE('<', html);
WHILE start > 0 DO
SET end = LOCATE('>', html, start);
IF end > 0 THEN
SET html = CONCAT(SUBSTRING(html, 1, start - 1), SUBSTRING(html, end + 1));
END IF;
SET start = LOCATE('<', html);
END WHILE;
RETURN html;
END $$
DELIMITER ;
```
이제 사용자 정의 함수 `strip_tags`를 사용하여 HTML 태그를 제거하고 내용만 가져올 수 있습니다.
```sql
SELECT strip_tags(content) AS stripped_content
FROM your_table;
```
위의 쿼리를 실행하면 `content` 열의 HTML 태그가 제거되고, `stripped_content` 열에 순수한 텍스트만 표시됩니다.
'개발' 카테고리의 다른 글
npm 오류: ENOSPC - 파일 감시자 수 제한 초과 시스템 제한 해결 방법 (0) | 2023.05.04 |
---|---|
Linux에서 npm 오류: spawn chrome ENOENT 해결 방법 (0) | 2023.05.04 |
MySQL을 사용하여 일별 가입자 수 카운트하는 방법 (0) | 2023.05.02 |
PHP를 사용하여 IP 대역 차단하는 방법 (0) | 2023.05.02 |
JavaScript로 선택된 옵션 옵션의 `attribute` 값 속성 가져오는 방법 (0) | 2023.05.02 |
댓글