쿼리문 질문좀요..

쿼리문 질문좀요..

QA

쿼리문 질문좀요..

본문

쿼리문 조건이 여러개 일경우  if else 를 사용해서 작성하고 있는데요 이렇게 하다보니

너무 지저분하고 복잡해보이는데요....  뭔가 잘못하고있는거 같기도 하고요

혹시 아래 쿼리가 맞는건지.. 아니면 다른 방법이 있는지 조언좀 해주실수 있나요... 

 


// 1단계  조건이 일치하는값 구하기
$sql = "select * from 테이블  where  a= '1' ";
~~~
if($row['idx']){
   //1단계 조건 값이 있다.
}else{
   //1단계 실패후  2단계로 조건 새롭게 해서 작성..
   $sql = "select * from 테이블  where  a= '1'  and b='1' ";
    ~~~
   if($row['idx']){
       //2단계 조건 값이 있다.
   }else{
       //2단계 실패후  3단계로 조건 새롭게 해서 작성..
       $sql = "select * from 테이블  where  a= '1'  and b='1'  and c='1' ";
       ..... 반복;;;
   }
}

 

암만봐도 비효율 적인데... 고수님 조언 부탁드립니다~~ 꾸벅 (_ _

이 질문에 댓글 쓰기 :

답변 2

컬럼 idx값이 보통의 index값 처럼 autoincrease되는 값이라면 

이렇게 할 필요가 없었겠죠.

그렇지 않은 값이라면 논리적으로는 맞습니다.

단, 너무 if 문 내로 깊이 들어가는 것은 바람직해 보이지 않습니다.

 

이것은 db의 table설계에 문제가 있지 않을까 봅니다.

 

검색 조건을 다양하게 해서 검색을 생각하다보니 if else if else 사용했는데
이게 이렇게 하다보니 너무 깊숙하게 들어가는듯하여 혹시나 다른 방법이 있을가 문의 남겼었는데
좀 쉽게 할수 있는게 없나 생각좀 다시 해봐야겠네요 ㅋㅋ 답변 감사합니다

// 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' ";

아 예로 든건데요.. ㅠㅠ  제가 궁금한건
if else  if else if else 이렇게 안으로 계속 중첩해서 들어가는 단계가 정상적인가... 아니면 다른 좋은 쿼리문? 이라고 해야하나 이런게 있는지 궁금해서 문의 드렸던건데  질문 전달이 잘못된듯합니다
답변 감사합니다~ ^^


쿼리 = where 조건1
if(){
	조건1에 대한 결과
}else{
	쿼리 = where  조건2
	if(){
		조건2에 대한 결과
	}else{
		쿼리 = where  조건3
		if(){
			조건3에 대한 결과
		}else{
			
		}

	}
}

이렇게 조건별로 어느 조건에서 결과가 노출되는지 보고 싶었던게 컸던거 같습니다;;;

그냥

쿼리 =  where 조건1 or 조건2 or 조건3
if(){
	조건 결과
}else{

}

이렇게 줄여 버렸습니다

답변을 작성하시기 전에 로그인 해주세요.
전체 1,506
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT