개발 Q&A

제목 BETWEEN질문
글쓴이 헛발이 작성시각 2014/05/02 11:31:27
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 14154   RSS
보통 BETWEEN는

필드 BETWEEN 값1 AND 값2

이렇게 사용하잖아요....

이렇게 말고

값1 BETWEEN 필드1 AND 필드2

이렇게는 못하는건가요?
 
 다음글 드림위버CC랑 php연동 방법좀...알려주세요.. (1)
 이전글 무한 F5 공격은 어떻게 방어해야 되나요? (5)

댓글

한대승(불의회상) / 2014/05/02 15:04:47 / 추천 0
네 그렇게 못합니다.
letsgolee / 2014/05/02 22:23:55 / 추천 0
between은 못쓰더라도 비슷하게 구현하는 건 어떤지 모르겠네요.
 
$db_link = mysql_connect($db_host, $db_user, $db_pass);

if (!$db_link) exit(mysql_error());

$result = @mysql_select_db($db_name, $db_link);

if (!$result) exit('cannot find the database as '.$db_name);

mysql_query('set names utf8');

$result = mysql_query("create table `test` (
 `serial` int(11) auto_increment,
 `int1` int(11) not null default '0',
 `int2` int(11) not null default '0',
 primary key(`serial`))");

if (!$result) exit("테이블 생성에 실패했습니다.<br/>\n".mysql_error());

for($i = 0; $i < 10; $i++) {
 $int1 = rand(1,100);
 $int2 = rand(1,100);
 mysql_query("insert into `test` (`int1`, `int2`) values ('".$int1."', '".$int2."')");
 echo "int1: ".$int1.", int2: ".$int2."<br/>\n";
}

echo "<br/>\n";

$value = rand(2,99);

echo "선택된 값은 ".$value."입니다.<br/>\n";

echo "무작위로 선택되어 데이터베이스에 저장된 값들 중 선택된 값을 가지고 비교하여<br/>\n";
echo "값 BETWEEN 필드1 AND 필드2 형식에 맞는 값을 구합니다.<br/><br/>\n";

$result = mysql_query("select * 
 from `test`
 where (`int1` > `int2` and `int1` > ".$value." and `int2` < ".$value.") or (`int1` < `int2` and `int1` < ".$value." and `int2` > ".$value.")");

if (mysql_num_rows($result)) {
 while($row = mysql_fetch_object($result)) {
  echo "int1: ".$row->int1.", int2: ".$row->int2."<br/>\n";
 }
}


mysql_query("drop table test");

mysql_close();
들국화 / 2014/05/09 11:05:39 / 추천 0
필드가 두개니 between 을 두개 쓰면 되겠네요.