"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 으로 제외하면 되지 않을까요??