IT

임의의 순서로 행 반환

lottoking 2020. 8. 12. 07:26
반응형

임의의 순서로 행 반환 [중복]


이 질문에 이미 답변이 있습니다.

쿼리가 실행될 때마다 임의의 순서로 테이블 행을 반환하는 SQL 쿼리를 실행할 수 있습니까?


SELECT * FROM table
ORDER BY NEWID()

이것은 가장 간단한 방법입니다.

SELECT quote FROM quotes ORDER BY RAND() 

가장 많이는 아니지만. 이것은 더 나은 솔루션입니다.


일반적인 방법은 고유 한 GUID를 생성하는 NEWID () 함수를 사용하는 것입니다. 그래서,

SELECT * FROM dbo.Foo ORDER BY NEWID();


최선이고 무작위로 두 개의 서로 다른 쿼리를 사용하는 것이 좋습니다.

뭔가 ...

테이블에서 table_id 선택

그런 다음 선택한 언어로 임의의 ID를 선택한 다음 해당 행의 데이터를 가져옵니다.

SELECT * FROM 테이블 WHERE table_id = $ rand_id

그러나 예상되는 경우 많은 행이있을 것입니다. 무작위로 선택하는 항목에 제한을 두는 것이 좋습니다. 출판물의 경우 작년에 게시 된 항목 만 무작위로 선택할 수 있습니다.


다음은 예입니다 ( 소스 ).

SET @randomId = Cast(((@maxValue + 1) - @minValue) * Rand() + @minValue AS tinyint);

이것이 필요한 것입니다.

SELECT * FROM table_name ORDER BY RAND () LIMIT 1

참고 URL : https://stackoverflow.com/questions/1117761/return-rows-in-random-order

반응형