질문Q #2705
BETWEEN질문
헛발이2014-05-02 11:31:27
보통 BETWEEN는

필드 BETWEEN 값1 AND 값2

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

이렇게 말고

값1 BETWEEN 필드1 AND 필드2

이렇게는 못하는건가요?
 
답변3
#1 한대승(불의회상) 2014-05-02 15:04:47
네 그렇게 못합니다.
#2 letsgolee 2014-05-02 22:23:55
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();
#3 들국화 2014-05-09 11:05:39
필드가 두개니 between 을 두개 쓰면 되겠네요.