쿼리문 질문좀요.. 채택완료
포인트적립
4년 전
조회 1,742
쿼리문 조건이 여러개 일경우 if else 를 사용해서 작성하고 있는데요 이렇게 하다보니
너무 지저분하고 복잡해보이는데요.... 뭔가 잘못하고있는거 같기도 하고요
혹시 아래 쿼리가 맞는건지.. 아니면 다른 방법이 있는지 조언좀 해주실수 있나요...
</p>
<p>// 1단계 조건이 일치하는값 구하기</p>
<p>$sql = "select * from 테이블 where a= '1' ";</p>
<p>~~~</p>
<p>if($row['idx']){</p>
<p> //1단계 조건 값이 있다.</p>
<p>}else{</p>
<p> //1단계 실패후 2단계로 조건 새롭게 해서 작성..</p>
<p> $sql = "select * from 테이블 where a= '1' and b='1' ";</p>
<p> ~~~</p>
<p> if($row['idx']){</p>
<p> //2단계 조건 값이 있다.</p>
<p> }else{</p>
<p> //2단계 실패후 3단계로 조건 새롭게 해서 작성..</p>
<p> $sql = "select * from 테이블 where a= '1' and b='1' and c='1' ";</p>
<p> ..... 반복;;;</p>
<p> }</p>
<p>}</p>
<p>
암만봐도 비효율 적인데... 고수님 조언 부탁드립니다~~ 꾸벅 (_ _
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
4년 전
컬럼 idx값이 보통의 index값 처럼 autoincrease되는 값이라면
이렇게 할 필요가 없었겠죠.
그렇지 않은 값이라면 논리적으로는 맞습니다.
단, 너무 if 문 내로 깊이 들어가는 것은 바람직해 보이지 않습니다.
이것은 db의 table설계에 문제가 있지 않을까 봅니다.
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
�
포인트적립
4년 전
댓글을 작성하려면 로그인이 필요합니다.
4년 전
// 1단계 조건이 일치하는값 구하기
$sql = "select * from 테이블 where a= '1' ";
~~~
if($row['idx']){
//1단계 조건 값이 있다.
}else{
//1단계 실패후 2단계로 조건 새롭게 해서 작성..
a='1' 조건으로 없는데
a= '1' and b='1' 이 조건으로 결과가 나올 수가 없죠.
$sql = "select * from 테이블 where a= '1' and b='1' ";
로그인 후 평가할 수 있습니다
답변에 대한 댓글 3개
�
포인트적립
4년 전
아 예로 든건데요.. ㅠㅠ 제가 궁금한건
if else if else if else 이렇게 안으로 계속 중첩해서 들어가는 단계가 정상적인가... 아니면 다른 좋은 쿼리문? 이라고 해야하나 이런게 있는지 궁금해서 문의 드렸던건데 질문 전달이 잘못된듯합니다
답변 감사합니다~ ^^
if else if else if else 이렇게 안으로 계속 중첩해서 들어가는 단계가 정상적인가... 아니면 다른 좋은 쿼리문? 이라고 해야하나 이런게 있는지 궁금해서 문의 드렸던건데 질문 전달이 잘못된듯합니다
답변 감사합니다~ ^^
�
엑스엠엘
4년 전
조건문을 query 안에 넣을 수도 있습니다.
실제 원하시는 내용을 올려 보세요.
실제 원하시는 내용을 올려 보세요.
�
포인트적립
4년 전
[code]
쿼리 = where 조건1
if(){
조건1에 대한 결과
}else{
쿼리 = where 조건2
if(){
조건2에 대한 결과
}else{
쿼리 = where 조건3
if(){
조건3에 대한 결과
}else{
}
}
}
이렇게 조건별로 어느 조건에서 결과가 노출되는지 보고 싶었던게 컸던거 같습니다;;;
그냥
쿼리 = where 조건1 or 조건2 or 조건3
if(){
조건 결과
}else{
}
이렇게 줄여 버렸습니다
[/code]
쿼리 = where 조건1
if(){
조건1에 대한 결과
}else{
쿼리 = where 조건2
if(){
조건2에 대한 결과
}else{
쿼리 = where 조건3
if(){
조건3에 대한 결과
}else{
}
}
}
이렇게 조건별로 어느 조건에서 결과가 노출되는지 보고 싶었던게 컸던거 같습니다;;;
그냥
쿼리 = where 조건1 or 조건2 or 조건3
if(){
조건 결과
}else{
}
이렇게 줄여 버렸습니다
[/code]
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
이게 이렇게 하다보니 너무 깊숙하게 들어가는듯하여 혹시나 다른 방법이 있을가 문의 남겼었는데
좀 쉽게 할수 있는게 없나 생각좀 다시 해봐야겠네요 ㅋㅋ 답변 감사합니다