아래처럼 데이터가 있을 경우
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개
채택된 답변
+20 포인트
Copy
$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개
2021-03-23 (화) 23:44:54
2021-03-24 (수) 03:27:13
$sql ="SELECT id FROM test WHERE $some_value_25 between min AND max";
$row = sql_fetch($sql);
답변에 대한 댓글 4개
백수1995
2021-03-24 (수) 07:44:53
님이 답 달아주셨는데 새벽이라 작성자님이 못본거 같네요 ㅎㅎ
어제 밤에 이글 보고 느꼈습니다.
PHP 개발자는 PHP 로만 해결하려고 한다는걸 ㅋㅋ
- 어설픈 풀스택 개발자 -
어제 밤에 이글 보고 느꼈습니다.
PHP 개발자는 PHP 로만 해결하려고 한다는걸 ㅋㅋ
- 어설픈 풀스택 개발자 -
2021-03-24 (수) 11:32:40
확인이 늦어 인사가 늦었네요. 감사합니다 ^O^
sql 한방으로 해결하고 싶었는데...
감사!!!감사!!!합니다.
sql 한방으로 해결하고 싶었는데...
감사!!!감사!!!합니다.
2021-03-23 (화) 23:32:12
설명 부족입니다
min, max가 항상 설명 처럼 (11 , 20) ~~ (91, 100) ~~ (501, 510)
이런 상황인가요?
그게 아니라면 min, max 값 등록시 어떤 규칙이라도 있는 것인가요?
답변에 대한 댓글 3개
2021-03-23 (화) 23:36:19
min, max 값은 님이 쓰신 규칙입니다.
겹치거나하는 경우는 발생하지 안습니다.
겹치거나하는 경우는 발생하지 안습니다.
2021-03-24 (수) 00:03:22
답변감사합니다.
sql만으로 조회가 안될까 생각했는데
아래 sinbi님 말씀처럼 sql만으로는 포기입니다. ㅠㅠ
감사합니다.
sql만으로 조회가 안될까 생각했는데
아래 sinbi님 말씀처럼 sql만으로는 포기입니다. ㅠㅠ
감사합니다.
sinbi
2021-03-24 (수) 00:09:54
균이 님, 방법이 더 좋네요.
$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
$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
2021-03-23 (화) 23:13:47
SELECT id FROM test where between 21 and 30;
으로 해보세요~
답변에 대한 댓글 1개
2021-03-23 (화) 23:20:45
죄송합니다. 제가 설명이 부족했습니다.
검색어가 25일경우
min과 max값을 구간으로 판단해서 id값을 조회합니다.
검색어에 min과 max값은 주어지지 안습니다.
검색어가 25일경우
min과 max값을 구간으로 판단해서 id값을 조회합니다.
검색어에 min과 max값은 주어지지 안습니다.
답변을 작성하려면 로그인이 필요합니다.
혹시 sql만을 이용한 조회방법은 없겠습니까?