programing

행을 임의 순서로 반환

cafebook 2023. 5. 18. 23:58
반응형

행을 임의 순서로 반환

쿼리가 실행될 때마다 테이블 행을 임의 순서로 반환하는 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를 선택한 다음 해당 행의 데이터를 가져옵니다.

선택 * 테이블에서 table_id = $rand_id

그러나 테이블에 많은 행이 있을 것으로 예상되는 경우에는 그다지 좋은 생각이 아닙니다.당신이 무작위로 선택하는 것에 어떤 제한을 두는 것이 더 좋을 것입니다.출판물의 경우, 최근 1년 이내에 게시된 항목 중에서 무작위로 선택할 수 있습니다.

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

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

SQL Server/MS 액세스 구문:

SELECT TOP 1 * FROM table_name ORDER BY RAND()

MySQL 구문:

SELECT * FROM table_name ORDER BY RAND() LIMIT 1

언급URL : https://stackoverflow.com/questions/1117761/return-rows-in-random-order

반응형