where (1) 의미가 뭔지 ?

where (1) 의미가 뭔지 ?

QA

SIR 제작의뢰 - 견적무료/익명보정/호스팅, DB 이전/단기개발. 이젠 ' 의뢰인'이 원하는 '제작자'에게만 연락처를 알릴 수 있습니다.

where (1) 의미가 뭔지 ?

본문

https://sir.kr/qa/149890 에 untitled 님이 두 번째 적으신 소스 7라인에서 

 

where (1) 는 어떤 의미인지 궁금합니다.

 

 

이 글을 내 페이스북 계정으로 보내기 이 글을 내 트위터 계정으로 보내기 이 글을 내 구글플러스 계정으로 보내기

이 질문에 댓글 쓰기 :

답변 4

채택됨

슈와이님의 답변

php의 while(1) { }  하고 같다고 보면 됩니다. 항상 true 가 되어 실행되죠

주소복사
채택됨
답변의 댓글
슈와이님의 댓글
밑에 답변이 달린거 보니 설명이 부족했나 봅니다.
php  에서
if 조건절
실행문

sql 에서
select 실행문  where 조건절

if 문에서 조건절이 없으면 에러가 나듯이
where 에도 조건절이 없으면 에러가 납니다.

보통은 where 1 로 많이 씁니다.
where (1) 또는 where 1 은 true 로 인식되어 select 실행문이 항상 실행되죠

예를 들면 회원검색에서 남자만 검색한다면
$where = " and sex = 'M' "
"select * from table where " +$where;
이런 경우 where and sex = 'M' 이 되어 에러가 나죠
이걸 막기 위해 select 실행문이 항상 실행되면서 에러가 안나도록 하는 겁니다.
"select * from table where 1 " + $where;

조건절이 추가 될수 있는 경우를 대비하여 where (1) 로 했다면 보시면 됩니다.
조건절이 필요없는 경우라면 where 1 을 굳이 넣을 필요가 없지요.

Rido님의 답변

흠.. 제 경험상으로는 뒤의 where절을 if 문으로 

뭔가 검색이 있을경우 없을경우...

where절을 비워둘때 많이 사용하곤 합니다.

주소복사
답변의 댓글

플래토님의 답변

참고로

Where (1) 은 MySql에서만 유효합니다.

 

Oracle에서는 관계연산자가 부적합하다고 나옵니다.

 

다른 DB의 접근에 좀더 유연하게 사용하려면

 

where ( 1=1) 

로 사용하는게 더 좋습니다.

 

Where (1) 의 방식은

님의 의견과 같이

 

조건에 따라 and 절을 추가할때 유용합니다.

 

비슷한구문은 GnuBoard 기본엔진에서도 발견할수있습니다.

 

/bbs/list.php 에서

 

$sql_search = get_sql_search($sca, $sfl, $stx, $sop);

 

의 문장에 사용된

 

get_sql_search() 를 살펴보면

 

중간에 return 0 이 등장합니다.

 

비교연산자의 

1은 

PHP / MySql / JavaScript 등에서 '참(true)'로 사용될수있습니다.

 

0은  '거짓(false)' 로 인식됩니다. 

 

비교연산자에서 1 / 0 의 값을 이용하여 비교하는 구문을 작성하면

코드의 사이즈나 성능개선에 도움이 될겁니다.

 

 

 

 

 

 

주소복사
답변의 댓글
답변을 작성하시기 전에 로그인 해주세요.
전체 68,863 | RSS
고마운 분의 도움으로 질문을 해결하셨다면, 채택을 눌러서 감사의 마음을 전하세요.
어떻게 질문해야 할지 모른다면 질문하는 방법을 읽어 보신후 질문해 보세요.
QA 내용 검색

회원로그인

진행중 포인트경매

  1. 그누보드5 배너관리 솔루션

    참여0 회 시작18.12.19 15:05 종료18.12.26 15:05
  2. 밤 2키로

    참여4 회 시작18.12.18 16:34 종료18.12.23 16:34

(주)에스아이알소프트 (06253) 서울특별시 강남구 도곡로1길 14, 6층 624호 (역삼동, 삼일프라자) 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT