Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 | 31 |
Tags
- Jenkins
- chrome
- 파이썬
- toml
- spring boots
- 광고 id
- AWS
- it
- nuxt
- JavaScript
- react-native
- TypeScript
- python
- 백준
- 오퍼월
- docker
- Next
- Express
- 개발
- nginx
- 오블완
- NanoHttpd
- 코딩테스트
- 코테
- css
- 티스토리챌린지
- React
- EC2
- Android
- kotlin
Archives
- Today
- Total
내맘대로 개발일지
[Express] Mysql Html Tag 걸러내기 본문
📱테스트 환경
"express": "^4.18.2"
"typescript": "^5.3.3"
Front 에서 ReactQuill 라이브러리를 이용해서 텍스트 입력을 받고 있었다.
이렇게 하니까 백앤드에서 데이터를 저장할 때 html 코드 그대로 저장해야 했다.
그래야 Bold 나 정렬, 줄바꿈 등 그대로 다시 보여줄 수 있었기 때문이다.
근데 검색기능을 만들다 보니까 html 코드 안에 있는 텍스트도 함께 LIKE 조건에 걸리다 보니 본문에 없는 내용도
있는걸로 인식돼어서 검색결과에 걸려서 나왔다.ㅇㅣ를 해결하기 위해서 정규식 REGEXP_REPLACE 를 사용하였고
REGEXP_REPLACE(a.content, '<[^>]*>', '')
이처럼 사용해주었다.
전체 사용한 코드는 다음과같다.
SELECT
a.article_id,
u.username,
c.ctg_name as ctg_name,
a.topic,
a.content,
a.image,
a.created_at,
a.updated_at,
COUNT(a2.article_id) as review_count
FROM
article a
LEFT OUTER JOIN users u ON a.user_id = u.user_id
LEFT OUTER JOIN category c ON a.ctg_id = c.ctg_id
LEFT OUTER JOIN articleviews a2 ON a.article_id = a2.article_id
WHERE
REGEXP_REPLACE(a.topic, '<[^>]*>', '') LIKE CONCAT('%', ?, '%')
OR
REGEXP_REPLACE(a.content, '<[^>]*>', '') LIKE CONCAT('%', ?, '%')
OR
REGEXP_REPLACE(u.username, '<[^>]*>', '') LIKE CONCAT('%', ?, '%')
GROUP BY a.article_id
ORDER BY created_at DESC
LIMIT 10 OFFSET ?
'Javascript' 카테고리의 다른 글
| [Nuxt] 페이지 이동 (0) | 2024.04.24 |
|---|---|
| [Express] Mysql 연결하기 (0) | 2024.04.16 |
| [Express] AWS S3 Image 삭제하기 (0) | 2024.04.12 |
| [Express] AWS S3 Image 업로드하기 (2) | 2024.04.12 |
| [TypeScript] try catch 의 e 타입 - unknown (0) | 2024.03.25 |