반응형
행을 임의 순서로 반환
쿼리가 실행될 때마다 테이블 행을 임의 순서로 반환하는 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
반응형
'programing' 카테고리의 다른 글
GitHub에서 포크 간 병합 (0) | 2023.05.19 |
---|---|
머큐리얼 프로젝트를 깃으로 변환 (0) | 2023.05.18 |
Github이 화면의 지침을 따르고 새 repo를 푸시할 때 사용자 이름/비밀번호를 묻는 이유는 무엇입니까? (0) | 2023.05.18 |
태스크 킬/f는 프로세스를 죽이지 않습니다. (0) | 2023.05.18 |
Python panda, 열 레이블 없이 엑셀 파일을 읽고 열 레이블을 삽입하려면 어떻게 해야 합니까? (0) | 2023.05.18 |