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를 사용해서 랜덤하게 가져오는 방법을 간략히 설명해보겠습니다.
</p>
<p>$sql = " SELECT * FROM table_name WHERE a AND b ";</p>
<p>$result = sql_query($sql);</p>
<p>for ($i=0; $row=sql_fetch_array($result); $i++) {</p>
<p> $source[$i]['name'] = $row['name'];</p>
<p> $source[$i]['value'] = $row['value'];</p>
<p>}</p>
<p>
이렇게 하시면 sql문의 조건에 맞는 모든 값을 불러와서 source라는 배열에 저장되었을 것입니다.
이제 불러온 source의 값을 랜덤하게 출력하면 됩니다.
</p>
<p>$end_point = count($source);</p>
<p>$rand_num = rand(0, $end_point);</p>
<p>echo $source[$rand_num]['name'];</p>
<p>echo $source[$rand_num]['value'];</p>
<p>
이렇게 하시면 원하시는 기능을 구현하실 수 있을 것입니다.
원하시는 답이 sql문이라면 위 답변은 별 도움이 안되겠지만...
원하시는 답을 찾으시길 바랍니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인