sql 질문이요!!부탁드립니다.
본문
php 공부를 막 시작한 초보자 입니다.
주석을 달면서 공부를 하고있는데 이 아래 구문의 해석이 도대체가 잘 안되서 이렇게 올립니다.
조언좀 부탁드립니다.!!
$sql_common = " from {$g5['auth_table']} a left join {$g5['member_table']} b on (a.mb_id=b.mb_id) ";
$sql_search = " where (1) ";
if ($stx) {
$sql_search .= " and ( ";
switch ($sfl) {
default :
$sql_search .= " ({$sfl} like '%{$stx}%') ";
break;
}
$sql_search .= " ) ";
}
답변 3
sql 구문에 대한 전반적인 학습을 해보는 게 도움이 될 것으로 생각됩니다.
https://www.w3schools.com/sql/
sql 구문에 where 1 또는 where 1 = 1 을 먼저 해놓고, 뒤에 추가 조건 구문을 넣는 이유는..
조건이 1개이든, 2개이든, 3개이든 and 로 연결시켜 주기 위해서입니다.
where 1 로 시작하지 않는 경우에는..
검색 조건이 하나인 경우에는..
where (검색조건) 식으로 sql 구문이 만들어져 하고..
검색조건이 2개인 경우에는..
where (검색조건1) and (검색조건2) 로 만들어져야 합니다.
where 1 을 넣고 시작하면..
where 1 and (검색조건1)
where 1 and (검색조건1) and (검색조건2) 로 구문을 만들 수 있습니다.
조건문이 where 조건1 and 조건2 ... 이렇게 작성되는데 where 바로 뒤에 and 는 붙으면 안되기에
(1) <== 이건 항상 참인 조건입니다.
where (항상참) 그뒤에 조건이 있으면 and 를 붙이고 like 문 붙이고 이런식으로 만드는 코드 입니다.
구문이 이해안된다고 하시면안되고 특정부분이 왜 쓰였는지 등을 물어보셔야할것같은데
그냥 전체구문 다 넣어놓고 이해가 안된다고 하시면 어느부분이 이해가 안되는것인지 모르겠네요.
나시님처럼 (1) 이 부분에 대해 궁금한건지..