게시글 칼럼에
int 게시글 아이디
enum 공지여부('Y','N')
varchar 제목
blob 내용
datetime 작성일
varchar 작성자 이름
varchar 작성자 아이디
초기 요구 사항) 공지 목록 불러오는 쿼리 짜주세요
SELECT *
FROM 게시글
WHERE 공지여부 = 'Y'
ORDER BY 작성일 DESC
아 .. 공지가 너무 많아요 글 올리고 30일 이내만 뜨게 해주세요
SELECT *
FROM 게시글
WHERE 공지여부 = 'Y'
AND DATEDIFF(NOW(), reg_date) <= 30
ORDER BY 작성일 DESC;
공지 숨김 추가해주세요.
enum 숨김여부('Y','N) 추가
SELECT *
FROM 게시글
WHERE 공지여부 = 'Y'
AND DATEDIFF(NOW(), reg_date) <= 30 AND 공지숨김='N'
ORDER BY 작성일 DESC;
공지에 관리자 등급(총괄매니저, 부매니저, 스태프 등)도 같이 표시해주세요.
SELECT *
FROM 게시글
LEFT JOIN 멤버 ON 게시글.작성자아이디 = 멤버.멤버아이디
WHERE 공지여부 = 'Y'
AND DATEDIFF(NOW(), 작성일) <= 30
AND 공지숨김 = 'N' AND
멤버.관리자여부 = 'Y' AND 멤버.휴먼여부 = 'N'
ORDER BY 작성일 DESC;
선생님 공지 개수가 너무 들죽날죽한데 10개까지로 제한해주세요.
SELECT *
FROM
(SELECT *
FROM 게시글
WHERE 공지여부 = 'Y'
AND DATEDIFF(NOW(), 작성일) <= 30
AND 공지숨김 = 'N'
ORDER 작성일 DESC limit 10) AS A
LEFT JOIN 멤버 ON A.작성자아이디 = 멤버.멤버아이디
WHERE 멤버.관리자여부 = 'Y' AND 멤버.휴먼여부 = 'N'
선생님 댓글 best 댓글 딱 1개만 미리보기 가능할까요??
SELECT A.*, M.관리자여부, M.휴먼여부, M.등급,
C.댓글내용 AS best_댓글내용,
C.작성자아이디 AS best_댓글작성자,
C.좋아요 AS best_댓글좋아요
FROM (
SELECT *
FROM 게시글
WHERE 공지여부 = 'Y'
AND DATEDIFF(NOW(), 작성일) <= 30
AND 공지숨김 = 'N'
ORDER BY 작성일 DESC
LIMIT 10
) A
LEFT JOIN 멤버 M
ON A.작성자아이디 = M.멤버아이디
AND M.관리자여부 = 'Y'
AND M.휴먼여부 = 'N'
LEFT JOIN (
SELECT D1.*
FROM 댓글 D1
JOIN (
SELECT 게시글아이디, MAX(좋아요) AS max_likes
FROM 댓글
GROUP BY 게시글아이디
) D2
ON D1.게시글아이디 = D2.게시글아이디 AND D1.좋아요 = D2.max_likes
LIMIT 1 -- 안전장치: 동점 댓글 여러 개 방지 위해 필요한 경우 정제 필요
) C
ON A.게시글아이디 = C.게시글아이디
ORDER BY A.작성일 DESC;
선생님 로딩속도가 왜이렇게 느리죠..?
네..?
감사합니다.
그리고 타입을 다 문자열로 하는거 - dc App
이거 레알 ㅋㅋㅋ SI 잘알이네
요구사항 늘때마다 read_board1, read_board2 늘어나는거도 추가
개추
근데 SI에서 enum을 씀? char이나 쓸거같은데
enum자주쓰는데 확장성이 떨어져서 varchar로 지향하는편 - dc App
실무에서는 저런 게 몇십 몇백 몇천 개가 있다고 하던데
쿼리 수천줄 기본이죠
근데 이런 추가 요구사항들은 서비스 단에서 처리하는 게 낫지 않음? 쿼리에 다 반영하면 너무 더러워지던데
예시가 저런거지 서비스단에서도 처리하고 쿼리에서도 처리함.
쿼리 뻥튀기의 시작은 코드와 Union 들어가면서 하하하
si 신입인데 이렇게 만들어진거구나; 쿼리 걍 해석이 불가능 ㅜㅜ - dc App
ㄷㄷㄷㄷㄷㄷㄷㄷㄷ개추발사
서브타입을 생각하든 해서 분리를 해야대나
퐁님 현장에서 이런 쿼리들과 싸우고 계신거죠 - dc App
이거 실제로 당해보면 정신나가긴 함. 그냥 프론트 단에서 비동기 호출로 처리할거 한방쿼리면 해결된다고 어거지 써서 이상한놈이 쿼리짜둔거 돌려놓고 되네? 하고 실제 서비스 들어가서 몇개월뒤에 데이터좀 쌓이니까 답도 안나오게 느려짐. 그새긴 이미 퇴사
ㅋㅋㅋㅋㅋㅋㅋ존나 공감이네
고증 미쳤네 소름 돋네
이거 사내고발 아닌가요
우리회사 다니냐
ㅋㅋㅋㅋㅋㅋㅋ
이런걸 고치려면 어떻게하는건가요