mysql 데이타를 램덤으로 뽑아 올수 없을가요?
본문
select * from TABLE where A and B;
에서 A와 B의 조건으로 충족하는 값을 램덤으로 가져올 방법이 없을가요?
구글링해서 rand() 함수를 찾아보았는데 어떻게 적용을 해야 할지 도움 좀 부탁드립니다.
select * from TABLE where A and B ORDER BY rand() LIMIT 1 ; 이렇게 해보니 계속 첫번째 값만 출력이 됩니다.
답변 2
rand() 사용하는 방법은 맞는데 안된다면 where A and B 이 조건이 문제 겠네요
조건에 해당하는 것이 하나 밖에 없는 것이겟죠
sql 문으로 가져오는 것이 좋긴합니다.
저는 PHP를 사용해서 랜덤하게 가져오는 방법을 간략히 설명해보겠습니다.
$sql = " SELECT * FROM table_name WHERE a AND b ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
$source[$i]['name'] = $row['name'];
$source[$i]['value'] = $row['value'];
}
이렇게 하시면 sql문의 조건에 맞는 모든 값을 불러와서 source라는 배열에 저장되었을 것입니다.
이제 불러온 source의 값을 랜덤하게 출력하면 됩니다.
$end_point = count($source);
$rand_num = rand(0, $end_point);
echo $source[$rand_num]['name'];
echo $source[$rand_num]['value'];
이렇게 하시면 원하시는 기능을 구현하실 수 있을 것입니다.
원하시는 답이 sql문이라면 위 답변은 별 도움이 안되겠지만...
원하시는 답을 찾으시길 바랍니다.
!-->!-->
답변을 작성하시기 전에 로그인 해주세요.