일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 설정 파일
- 워드프레스 rss
- Elasticsearch
- memcache
- Apache
- Wordpress
- 인스타그램
- htpasswd
- graph api
- 맵핑
- elasticsrach template
- wordpress rss
- 워드프레스 피드
- 엘라스틱서치
- mapping
- htaccess
- config
- 크롤링
- 아파치
- wordpress feed
- Kibana
- 워드프레스
- template
- 아파치 프록시
- 프록시
- wordpress function
- memcached
- Today
- Total
EunsooD
MySQL에서 HTML Entity Decode하기 본문
MySQL에 데이터를 저장 할 때
HTML 코드표 때문에 데이터를 변형하여 저장하는 경우가 있다.
EX) 아래 표 참고
< |
< |
< |
보다 작은 |
= |
= |
- |
등호 |
> |
> |
> |
보다 큰 |
위와 같이 꺽쇠나 등호기호 쉼표 따옴표 등
특수 문자를 변형하여 저장하는 경우가 있다.
데이터가 저렇게 들어가 있는데,
Query 할 때 원상 복구 싶다면
DB에 Function을 추가해줘야 한다.
( 기본적으로 제공하지 않는다. )
아래 내용을 선언해주면 함수가 생기고
내용 호출 시 저 함수를 적용하면 잘 변환이 된다.
SELECT HTML_UnEncode(title), title FROM table WHERE num = 1;
출처 : https://stackoverflow.com/questions/3678980/is-there-a-mysql-function-to-decode-html-entities
코드 확인 ↓
DELIMITER $$
DROP FUNCTION IF EXISTS `HTML_UnEncode`$$
CREATE FUNCTION `HTML_UnEncode`(X TEXT CHARSET UTF8) RETURNS VARCHAR(255) CHARSET UTF8 DETERMINISTIC
BEGIN
DECLARE TextString TEXT CHARSET UTF8;
-- convert "double" ampersand encodings
IF INSTR(X, '&') THEN
SET TextString = REPLACE(TextString, '&', '&');
SET X = REPLACE(X, '&', '&');
END IF;
SET TextString = X;
#quotation mark
IF
INSTR(X, '"') THEN
SET TextString =
REPLACE(TextString, '"', '"');
END IF;
#apostrophe
IF INSTR(X, ''')
THEN
SET TextString = REPLACE(TextString, ''', '"') ;
END IF;
#ampersand
IF
INSTR(X, '&') THEN
SET TextString =
REPLACE(TextString, '&', '&');
END IF;
#less-than
IF
INSTR(X, '<') THEN
SET TextString =
REPLACE(TextString, '<', '<');
END IF;
#greater-than
IF
INSTR(X, '>') THEN
SET TextString =
REPLACE(TextString, '>', '>');
END IF;
#non-breaking space - double encoded
IF
INSTR(X, ' ') THEN
SET TextString =
REPLACE(TextString, ' ', 'X');
END IF;
#non-breaking space - double encoded
IF
INSTR(X, ' ') THEN
SET TextString =
REPLACE(TextString, ' ', ' ');
END IF;
#inverted exclamation mark
IF
INSTR(X, '¡') THEN
SET TextString =
REPLACE(TextString, '¡', '¡');
END IF;
#cent
IF
INSTR(X, '¢') THEN
SET TextString =
REPLACE(TextString, '¢', '¢');
END IF;
#pound
IF
INSTR(X, '£') THEN
SET TextString =
REPLACE(TextString, '£', '£');
END IF;
#currency
IF
INSTR(X, '¤') THEN
SET TextString =
REPLACE(TextString, '¤', '¤');
END IF;
#yen
IF
INSTR(X, '¥') THEN
SET TextString =
REPLACE(TextString, '¥', '¥');
END IF;
#broken vertical bar
IF
INSTR(X, '¦') THEN
SET TextString =
REPLACE(TextString, '¦', '¦');
END IF;
#section
IF
INSTR(X, '§') THEN
SET TextString =
REPLACE(TextString, '§', '§');
END IF;
#spacing diaeresis
IF
INSTR(X, '¨') THEN
SET TextString =
REPLACE(TextString, '¨', '¨');
END IF;
#copyright
IF
INSTR(X, '©') THEN
SET TextString =
REPLACE(TextString, '©', '©');
END IF;
#feminine ordinal indicator
IF
INSTR(X, 'ª') THEN
SET TextString =
REPLACE(TextString, 'ª', 'ª');
END IF;
#angle quotation mark (left)
IF
INSTR(X, '«') THEN
SET TextString =
REPLACE(TextString, '«', '«');
END IF;
#negation
IF
INSTR(X, '¬') THEN
SET TextString =
REPLACE(TextString, '¬', '¬');
END IF;
#soft hyphen
IF
INSTR(X, '') THEN
SET TextString =
REPLACE(TextString, '', '');
END IF;
#registered trademark
IF
INSTR(X, '®') THEN
SET TextString =
REPLACE(TextString, '®', '®');
END IF;
#spacing macron
IF
INSTR(X, '¯') THEN
SET TextString =
REPLACE(TextString, '¯', '¯');
END IF;
#degree
IF
INSTR(X, '°') THEN
SET TextString =
REPLACE(TextString, '°', '°');
END IF;
#plus-or-minus
IF
INSTR(X, '±') THEN
SET TextString =
REPLACE(TextString, '±', '±');
END IF;
#superscript 2
IF
INSTR(X, '²') THEN
SET TextString =
REPLACE(TextString, '²', '²');
END IF;
#superscript 3
IF
INSTR(X, '³') THEN
SET TextString =
REPLACE(TextString, '³', '³');
END IF;
#spacing acute
IF
INSTR(X, '´') THEN
SET TextString =
REPLACE(TextString, '´', '´');
END IF;
#micro
IF
INSTR(X, 'µ') THEN
SET TextString =
REPLACE(TextString, 'µ', 'µ');
END IF;
#paragraph
IF
INSTR(X, '¶') THEN
SET TextString =
REPLACE(TextString, '¶', '¶');
END IF;
#middle dot
IF
INSTR(X, '·') THEN
SET TextString =
REPLACE(TextString, '·', '·');
END IF;
#spacing cedilla
IF
INSTR(X, '¸') THEN
SET TextString =
REPLACE(TextString, '¸', '¸');
END IF;
#superscript 1
IF
INSTR(X, '¹') THEN
SET TextString =
REPLACE(TextString, '¹', '¹');
END IF;
#masculine ordinal indicator
IF
INSTR(X, 'º') THEN
SET TextString =
REPLACE(TextString, 'º', 'º');
END IF;
#angle quotation mark (right)
IF
INSTR(X, '»') THEN
SET TextString =
REPLACE(TextString, '»', '»');
END IF;
#fraction 1/4
IF
INSTR(X, '¼') THEN
SET TextString =
REPLACE(TextString, '¼', '¼');
END IF;
#fraction 1/2
IF
INSTR(X, '½') THEN
SET TextString =
REPLACE(TextString, '½', '½');
END IF;
#fraction 3/4
IF
INSTR(X, '¾') THEN
SET TextString =
REPLACE(TextString, '¾', '¾');
END IF;
#inverted question mark
IF
INSTR(X, '¿') THEN
SET TextString =
REPLACE(TextString, '¿', '¿');
END IF;
#multiplication
IF
INSTR(X, '×') THEN
SET TextString =
REPLACE(TextString, '×', '×');
END IF;
#division
IF
INSTR(X, '÷') THEN
SET TextString =
REPLACE(TextString, '÷', '÷');
END IF;
#capital a, grave accent
IF
INSTR(X, 'À') THEN
SET TextString =
REPLACE(TextString, 'À', 'À');
END IF;
#capital a, acute accent
IF
INSTR(X, 'Á') THEN
SET TextString =
REPLACE(TextString, 'Á', 'Á');
END IF;
#capital a, circumflex accent
IF
INSTR(X, 'Â') THEN
SET TextString =
REPLACE(TextString, 'Â', 'Â');
END IF;
#capital a, tilde
IF
INSTR(X, 'Ã') THEN
SET TextString =
REPLACE(TextString, 'Ã', 'Ã');
END IF;
#capital a, umlaut mark
IF
INSTR(X, 'Ä') THEN
SET TextString =
REPLACE(TextString, 'Ä', 'Ä');
END IF;
#capital a, ring
IF
INSTR(X, 'Å') THEN
SET TextString =
REPLACE(TextString, 'Å', 'Å');
END IF;
#capital ae
IF
INSTR(X, 'Æ') THEN
SET TextString =
REPLACE(TextString, 'Æ', 'Æ');
END IF;
#capital c, cedilla
IF
INSTR(X, 'Ç') THEN
SET TextString =
REPLACE(TextString, 'Ç', 'Ç');
END IF;
#capital e, grave accent
IF
INSTR(X, 'È') THEN
SET TextString =
REPLACE(TextString, 'È', 'È');
END IF;
#capital e, acute accent
IF
INSTR(X, 'É') THEN
SET TextString =
REPLACE(TextString, 'É', 'É');
END IF;
#capital e, circumflex accent
IF
INSTR(X, 'Ê') THEN
SET TextString =
REPLACE(TextString, 'Ê', 'Ê');
END IF;
#capital e, umlaut mark
IF
INSTR(X, 'Ë') THEN
SET TextString =
REPLACE(TextString, 'Ë', 'Ë');
END IF;
#capital i, grave accent
IF
INSTR(X, 'Ì') THEN
SET TextString =
REPLACE(TextString, 'Ì', 'Ì');
END IF;
#capital i, acute accent
IF
INSTR(X, 'Í') THEN
SET TextString =
REPLACE(TextString, 'Í', 'Í');
END IF;
#capital i, circumflex accent
IF
INSTR(X, 'Î') THEN
SET TextString =
REPLACE(TextString, 'Î', 'Î');
END IF;
#capital i, umlaut mark
IF
INSTR(X, 'Ï') THEN
SET TextString =
REPLACE(TextString, 'Ï', 'Ï');
END IF;
#capital eth, Icelandic
IF
INSTR(X, 'Ð') THEN
SET TextString =
REPLACE(TextString, 'Ð', 'Ð');
END IF;
#capital n, tilde
IF
INSTR(X, 'Ñ') THEN
SET TextString =
REPLACE(TextString, 'Ñ', 'Ñ');
END IF;
#capital o, grave accent
IF
INSTR(X, 'Ò') THEN
SET TextString =
REPLACE(TextString, 'Ò', 'Ò');
END IF;
#capital o, acute accent
IF
INSTR(X, 'Ó') THEN
SET TextString =
REPLACE(TextString, 'Ó', 'Ó');
END IF;
#capital o, circumflex accent
IF
INSTR(X, 'Ô') THEN
SET TextString =
REPLACE(TextString, 'Ô', 'Ô');
END IF;
#capital o, tilde
IF
INSTR(X, 'Õ') THEN
SET TextString =
REPLACE(TextString, 'Õ', 'Õ');
END IF;
#capital o, umlaut mark
IF
INSTR(X, 'Ö') THEN
SET TextString =
REPLACE(TextString, 'Ö', 'Ö');
END IF;
#capital o, slash
IF
INSTR(X, 'Ø') THEN
SET TextString =
REPLACE(TextString, 'Ø', 'Ø');
END IF;
#capital u, grave accent
IF
INSTR(X, 'Ù') THEN
SET TextString =
REPLACE(TextString, 'Ù', 'Ù');
END IF;
#capital u, acute accent
IF
INSTR(X, 'Ú') THEN
SET TextString =
REPLACE(TextString, 'Ú', 'Ú');
END IF;
#capital u, circumflex accent
IF
INSTR(X, 'Û') THEN
SET TextString =
REPLACE(TextString, 'Û', 'Û');
END IF;
#capital u, umlaut mark
IF
INSTR(X, 'Ü') THEN
SET TextString =
REPLACE(TextString, 'Ü', 'Ü');
END IF;
#capital y, acute accent
IF
INSTR(X, 'Ý') THEN
SET TextString =
REPLACE(TextString, 'Ý', 'Ý');
END IF;
#capital THORN, Icelandic
IF
INSTR(X, 'Þ') THEN
SET TextString =
REPLACE(TextString, 'Þ', 'Þ');
END IF;
#small sharp s, German
IF
INSTR(X, 'ß') THEN
SET TextString =
REPLACE(TextString, 'ß', 'ß');
END IF;
#small a, grave accent
IF
INSTR(X, 'à') THEN
SET TextString =
REPLACE(TextString, 'à', 'à');
END IF;
#small a, acute accent
IF
INSTR(X, 'á') THEN
SET TextString =
REPLACE(TextString, 'á', 'á');
END IF;
#small a, circumflex accent
IF
INSTR(X, 'â') THEN
SET TextString =
REPLACE(TextString, 'â', 'â');
END IF;
#small a, tilde
IF
INSTR(X, 'ã') THEN
SET TextString =
REPLACE(TextString, 'ã', 'ã');
END IF;
#small a, umlaut mark
IF
INSTR(X, 'ä') THEN
SET TextString =
REPLACE(TextString, 'ä', 'ä');
END IF;
#small a, ring
IF
INSTR(X, 'å') THEN
SET TextString =
REPLACE(TextString, 'å', 'å');
END IF;
#small ae
IF
INSTR(X, 'æ') THEN
SET TextString =
REPLACE(TextString, 'æ', 'æ');
END IF;
#small c, cedilla
IF
INSTR(X, 'ç') THEN
SET TextString =
REPLACE(TextString, 'ç', 'ç');
END IF;
#small e, grave accent
IF
INSTR(X, 'è') THEN
SET TextString =
REPLACE(TextString, 'è', 'è');
END IF;
#small e, acute accent
IF
INSTR(X, 'é') THEN
SET TextString =
REPLACE(TextString, 'é', 'é');
END IF;
#small e, circumflex accent
IF
INSTR(X, 'ê') THEN
SET TextString =
REPLACE(TextString, 'ê', 'ê');
END IF;
#small e, umlaut mark
IF
INSTR(X, 'ë') THEN
SET TextString =
REPLACE(TextString, 'ë', 'ë');
END IF;
#small i, grave accent
IF
INSTR(X, 'ì') THEN
SET TextString =
REPLACE(TextString, 'ì', 'ì');
END IF;
#small i, acute accent
IF
INSTR(X, 'í') THEN
SET TextString =
REPLACE(TextString, 'í', 'í');
END IF;
#small i, circumflex accent
IF
INSTR(X, 'î') THEN
SET TextString =
REPLACE(TextString, 'î', 'î');
END IF;
#small i, umlaut mark
IF
INSTR(X, 'ï') THEN
SET TextString =
REPLACE(TextString, 'ï', 'ï');
END IF;
#small eth, Icelandic
IF
INSTR(X, 'ð') THEN
SET TextString =
REPLACE(TextString, 'ð', 'ð');
END IF;
#small n, tilde
IF
INSTR(X, 'ñ') THEN
SET TextString =
REPLACE(TextString, 'ñ', 'ñ');
END IF;
#small o, grave accent
IF
INSTR(X, 'ò') THEN
SET TextString =
REPLACE(TextString, 'ò', 'ò');
END IF;
#small o, acute accent
IF
INSTR(X, 'ó') THEN
SET TextString =
REPLACE(TextString, 'ó', 'ó');
END IF;
#small o, circumflex accent
IF
INSTR(X, 'ô') THEN
SET TextString =
REPLACE(TextString, 'ô', 'ô');
END IF;
#small o, tilde
IF
INSTR(X, 'õ') THEN
SET TextString =
REPLACE(TextString, 'õ', 'õ');
END IF;
#small o, umlaut mark
IF
INSTR(X, 'ö') THEN
SET TextString =
REPLACE(TextString, 'ö', 'ö');
END IF;
#small o, slash
IF
INSTR(X, 'ø') THEN
SET TextString =
REPLACE(TextString, 'ø', 'ø');
END IF;
#small u, grave accent
IF
INSTR(X, 'ù') THEN
SET TextString =
REPLACE(TextString, 'ù', 'ù');
END IF;
#small u, acute accent
IF
INSTR(X, 'ú') THEN
SET TextString =
REPLACE(TextString, 'ú', 'ú');
END IF;
#small u, circumflex accent
IF
INSTR(X, 'û') THEN
SET TextString =
REPLACE(TextString, 'û', 'û');
END IF;
#small u, umlaut mark
IF
INSTR(X, 'ü') THEN
SET TextString =
REPLACE(TextString, 'ü', 'ü');
END IF;
#small y, acute accent
IF
INSTR(X, 'ý') THEN
SET TextString =
REPLACE(TextString, 'ý', 'ý');
END IF;
#small thorn, Icelandic
IF
INSTR(X, 'þ') THEN
SET TextString =
REPLACE(TextString, 'þ', 'þ');
END IF;
#small y, umlaut mark
IF
INSTR(X, 'ÿ') THEN
SET TextString =
REPLACE(TextString, 'ÿ', 'ÿ');
END IF;
# Additional
IF
INSTR(X, '™') THEN
SET TextString =
REPLACE(TextString, '™', '™');
END IF;
IF
INSTR(X, '“') THEN
SET TextString =
REPLACE(TextString, '“', '“');
END IF;
IF
INSTR(X, '”') THEN
SET TextString =
REPLACE(TextString, '”', '”');
END IF;
RETURN TextString;
END$$
DELIMITER ;
'STUDY > DB(MongoDB)' 카테고리의 다른 글
MySQL 테이블 구조 그대로 복사하기 (0) | 2018.08.29 |
---|