나는 쿼리를 실행하려고 할 SELECT
테이블에서 어디 status = 1
와 SELECT
어디에서 같은 테이블에서 status = 6
. 최종 결과는 6 개로 제한하고 최종 결과는 무작위로 선택 (셔플)합니다. 을 사용해 보았지만 ORDER BY rand()
셔플 링 (무작위 선택)없이 동일한 결과를 반환합니다.
내 질문은 다음과 같습니다.
(SELECT * FROM fpf_adverts WHERE status = 1 ORDER BY rand())
UNION ALL
(SELECT e.*FROM fpf_adverts e JOIN fpf_adverts ee ON e.status + 6 > ee.status WHERE e.status = 6) ORDER BY rand() LIMIT 6
이것을 달성하는 방법에 대한 아이디어가 있습니까?
해봐?
SELECT * FROM (
SELECT *
FROM fpf_adverts
WHERE status IN (1,6)
ORDER BY status
LIMIT 6) t
ORDER BY RAND()
이전 답변
해봐?
SELECT * FROM
(SELECT *
FROM fpf_adverts WHERE status = 1
UNION ALL
SELECT e.*
FROM fpf_adverts e
INNER JOIN fpf_adverts ee ON e.status + 6 > ee.status
WHERE e.status = 6) t
ORDER BY rand()
LIMIT 6
하지만 상태 1 또는 6으로 필터링하려면
SELECT *
FROM fpf_adverts
WHERE status IN (1,6)
ORDER BY rand()
LIMIT 6
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다