쿼리문 검토 부탁드립니다.
본문
//분류가 같아야한다
//wr_1~wr_7이 신청자와 같아선 안된다.
//wr_1은 비어있으면 안된다.
//wr_2 또는 wr_3가 추천인이여야한다
//wr_2가 추천인 이면
//->wr_4와 wr_6 둘다 비어있거나 =>wr_4로 저장
//->wr_4는 값이 있더라도 wr_6는 비어있어야한다. =>wr_6로 저장
//wr_3가 추천인이면
//->wr_5와 wr_7 둘다 비어있거나 =>wr_5로 저장
//->wr_5는 값이 있더라도 wr_7는 비어있어야한다. =>wr_7로 저장
//값은 오래된 순서로 하나 불러온다.
위의 조건을 다음과 같이 쿼리 작성했습니다.
select * from `g5_write_gold_tree`
where
`ca_name`="'.$result_v['ca_name'].'"
and `wr_1` !="'.$result_v['wr_content'].'"
and `wr_2` !="'.$result_v['wr_content'].'"
and `wr_3` !="'.$result_v['wr_content'].'"
and `wr_4` !="'.$result_v['wr_content'].'"
and `wr_5` !="'.$result_v['wr_content'].'"
and `wr_6` !="'.$result_v['wr_content'].'"
and `wr_7` !="'.$result_v['wr_content'].'"
and `wr_1` !=""
and
(
`wr_2`="'.$mb_info1['mb_nick'].'" and (`wr_4` ="" and `wr_6`="" or `wr_4` !="" and `wr_6`="")
or
`wr_3`="'.$mb_info1['mb_nick'].'" and (`wr_5` ="" and `wr_7`="" or `wr_5` !="" and `wr_6`="")
)
order by wr_datetime asc limit 1
검토 부탁드리고 더 좋은 방법이 있다면 알려주세요
답변 1
음 저는 DB구성을 조금 수정하고싶네요
만약 추천인이 wr_2 , wr_3이있는데 이 추천인이 종류가 다른거잖아요? 그래서 각각 다른 컬럼에 저장한것같은데
추천인을 구분하는 컬럼을 하나 잡고 시작했으면 어떨까합니다
구분:wr_2 , 추천인:wr_3, 추천인정보1:wr_4, 추천인정보2:wr_5 이런식으로말이죠
이 추천인 부분에서 쿼리가 길어지고 복잡해지는것같네요
작성하신 쿼리문에서도 추천인 부분은 or로 하고 추천인도 하나인점($mb_info1['mb_nick'])을 보니 이렇게해도 무방할것같은데말이죠