테스트 사이트 - 개발 중인 베타 버전입니다

mysql 데이타를 램덤으로 뽑아 올수 없을가요? 채택완료

Zendsoft 5년 전 조회 2,462

select * from TABLE where A and B;

 

에서 A와 B의 조건으로 충족하는 값을 램덤으로 가져올 방법이 없을가요?

 

구글링해서 rand() 함수를 찾아보았는데 어떻게 적용을 해야 할지 도움 좀 부탁드립니다.

 

select * from TABLE where A and B ORDER BY rand() LIMIT 1 ;  이렇게 해보니 계속 첫번째 값만 출력이 됩니다.

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
5년 전

rand() 사용하는 방법은 맞는데 안된다면 where A and B 이 조건이 문제 겠네요

조건에 해당하는 것이 하나 밖에 없는 것이겟죠

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

5년 전

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문이라면 위 답변은 별 도움이 안되겠지만...

원하시는 답을 찾으시길 바랍니다.

 

 

 

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인