2014-12-17 2 views
0

나는 100 개 이상의 항목이있는 테이블을 가지고 있으며,이 테이블의 고정 된 수의 항목을 무작위로 표시하려고합니다.테이블에서 고정 된 수의 항목을 표시하는 방법

아래의 쿼리를 사용하고 있습니다.

SELECT * FROM Table1 WHERE active='1' AND id NOT IN 
(SELECT ad_id FROM Table1_logs WHERE uid='$username') ORDER BY RAND() LIMIT 5 

Table1Table1_logs 오늘 사용자들에 의해 사용 된 항목을 포함, 모든 항목이 포함되어 있습니다.

문제 :

나는 각 사용자를 위해 매일 5 항목을 선택해야하고 그 금액을 초과 할 수 없습니다

. 사용자가 하나의 항목을 사용하고 로그에 저장되면 쿼리는 5 항목을 다시 선택하며 항상 5으로 유지됩니다. 사용자가 하나 개의 항목을 사용하면

, 그것은 계산

가 감소한다 :

나는 acheieve 싶은. 그는 매일 5 항목 만 볼 수 있어야합니다.

+0

검색어가 잘못 되었나요? 오류? 잘못된 결과? – FuzzyTree

+0

@fuzzytree 나는 그것이 5 개의 항목을 고른다는 것을 언급했다. 하나의 링크가 다시 이용되면 다음 5가 무작위로 선택된다. 5 개의 항목 만 표시하고 싶습니다. 하나의 링크가 사용되면 카운트를 줄여야하며, 5가 모두 사용되면 0으로 설정해야합니다. –

답변

0

table1 "utilizationCount"에 새 필드를 추가해야합니다. 링크를 사용하면 값을 1 씩 늘립니다. 그리고 쿼리에서이 필드로 주문해야합니다 : "order by utilizationCount asc limit 5".

관련 문제