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

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

QA

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

본문

select * from TABLE where A and B;

 

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

 

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

 

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

이 질문에 댓글 쓰기 :

답변 2

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

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

 

 

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 1,509
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT