>데이터 베이스 >MySQL 튜토리얼 >SQL 데이터베이스 테이블에서 무작위 행을 효율적으로 검색하려면 어떻게 해야 합니까?

SQL 데이터베이스 테이블에서 무작위 행을 효율적으로 검색하려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-23 06:21:12868검색

How Can I Efficiently Retrieve a Random Row from an SQL Database Table?

SQL 데이터베이스에서 임의의 행 선택

SQL 데이터베이스 테이블에서 임의의 단일 행을 효율적으로 검색하려면 신중한 고려가 필요합니다. 진정한 무작위성을 보장하기는 어렵지만 몇몇 SQL 기술은 거의 무작위 선택을 제공합니다.

무작위 행 선택 접근 방식:

최적의 방법은 특정 데이터베이스 시스템에 따라 다릅니다.

MySQL 및 PostgreSQL:

이 접근 방식은 RAND() 함수를 사용합니다.

<code class="language-sql">SELECT column
FROM table
ORDER BY RAND()
LIMIT 1;</code>

Microsoft SQL Server:

SQL Server는 NEWID() 기능을 사용합니다.

<code class="language-sql">SELECT TOP 1 column
FROM table
ORDER BY NEWID();</code>

IBM DB2:

DB2는 RAND():FETCH FIRST와 함께

기능을 활용합니다.
<code class="language-sql">SELECT column, RAND() AS IDX
FROM table
ORDER BY IDX
FETCH FIRST 1 ROWS ONLY;</code>

오라클:

Oracle은 하위 쿼리 내에서 dbms_random.value을 사용합니다.

<code class="language-sql">SELECT column
FROM (
    SELECT column
    FROM table
    ORDER BY dbms_random.value
)
WHERE rownum = 1;</code>

이 방법은 각 행에 대해 임의의 값을 생성한 다음 이 값을 기준으로 행을 정렬합니다. 그런 다음 LIMIT 절(또는 이에 상응하는 절)이 맨 위 행을 선택합니다. 완벽하게 무작위적이지는 않지만 이러한 기술은 대부분의 응용 분야에 실용적인 솔루션을 제공합니다. 이러한 쿼리는 계산 비용이 많이 들 수 있으므로 특히 대규모 테이블의 경우 성능에 미치는 영향을 염두에 두세요.

위 내용은 SQL 데이터베이스 테이블에서 무작위 행을 효율적으로 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.