아래처럼 데이터가 있을 경우
tbl name : test
id min max
1 11 20
2 21 30
3 31 40
4 41 50
검색은 min과 max를 구간으로 판단해 해당구간의 id를 조회합니다.
예) 25가 검색어일 경우 검색 id는 2
답변 4개 / 댓글 11개
$num = 25;
$sql = "SELECT * FROM test";
$res = sql_query($sql);
while($row = sql_fetch_array($res)) {
if($row['max'] < $num) continue;
$id = $row['id'];
if($id) break;
}
echo $id;
답변에 대한 댓글 3개
$sql ="SELECT id FROM test WHERE $some_value_25 between min AND max";
$row = sql_fetch($sql);
답변에 대한 댓글 4개
어제 밤에 이글 보고 느꼈습니다.
PHP 개발자는 PHP 로만 해결하려고 한다는걸 ㅋㅋ
- 어설픈 풀스택 개발자 -
sql 한방으로 해결하고 싶었는데...
감사!!!감사!!!합니다.
설명 부족입니다
min, max가 항상 설명 처럼 (11 , 20) ~~ (91, 100) ~~ (501, 510)
이런 상황인가요?
그게 아니라면 min, max 값 등록시 어떤 규칙이라도 있는 것인가요?
답변에 대한 댓글 3개
겹치거나하는 경우는 발생하지 안습니다.
sql만으로 조회가 안될까 생각했는데
아래 sinbi님 말씀처럼 sql만으로는 포기입니다. ㅠㅠ
감사합니다.
$num = 25;
$stx = floor($num / 10) * 10;
$min = $stx +1;
$max = $stx + 10;
$sql ="SELECT id FROM test WHERE min = $min AND max = $max";
$row = sql_fetch($sql);
echo $row['id']; // 2
SELECT id FROM test where between 21 and 30;
으로 해보세요~
답변에 대한 댓글 1개
검색어가 25일경우
min과 max값을 구간으로 판단해서 id값을 조회합니다.
검색어에 min과 max값은 주어지지 안습니다.
답변을 작성하려면 로그인이 필요합니다.
혹시 sql만을 이용한 조회방법은 없겠습니까?