데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
"SELECT *
FROM dummy
WHERE NOT phoneNum LIKE '"+userNum +"'
AND NOT gender LIKE '"+gender +"'
AND NOT userPicsUrlFour LIKE '1'
AND selectLoc LIKE '"+localStr+"'
AND selectPeopleCount LIKE '"+countStr+"'
Order by rand() limit 1 ;";
라는 쿼리를 이용해서 랜덤 값을 추출하고 있습니다.
위 조건이 일치하는 한사람을 추출하는 로직입니다.
그런데 여기서 네명(A,B,C,D)이 있다고 가정할때
한명(A라 칭함)이 출력되고 나서
다시한번 위의 랜덤을 돌렸을때 (A가 출력될 확률은 1/4인데)
이상태에서 A를 제외하고 (B,C,D가 1/3확률) 랜덤으로 돌릴수 있는
방법을 알수 있을까 해서 글을 씁니다.
아무리 몇일동안 고민을 해봐도 답이 안나와서 질문 올립니다.
이전에 나온 3개 정도의 값을 제외하고 랜덤으로 계속 값을 추출할수 있는 방법을 없을까요?
디비는 Mysql입니다.
글 읽어주셔서 감사합니다.
Comment 1
-
항해자™
2013.04.07 23:16
동적쿼리 같아 보이는데요,,,
뽑혔던 값을 저장해 뒀다가 NOT IN 으로 제외하면 되지 않을까요??