sql >> データベース >  >> RDS >> Mysql

ORDER BY RAND()はランダムではないようです

    RAND()> クエリごとに1回だけ実行されます。 結果セットを確認することで、これを確認できます。

    ランダム化された順序を取得しようとしている場合は、NEWID()のいずれかを使用する必要があります またはCHECKSUM(NEWID())

    WITH T AS ( -- example using RAND()
      SELECT 'Me' Name UNION SELECT 'You' UNION SELECT 'Another'
    )
    SELECT Name, RAND()
    FROM T;
    
    WITH T AS ( -- example using just NEWID()
      SELECT 'Me' Name UNION SELECT 'You' UNION SELECT 'Another'
    )
    SELECT Name, NEWID()
    FROM T;
    
    WITH T AS ( -- example getting the CHECKSUM() of NEWID()
      SELECT 'Me' Name UNION SELECT 'You' UNION SELECT 'Another'
    )
    SELECT Name, CHECKSUM(NEWID())
    FROM T;
    


    1. 例を含むSQLJOINチュートリアル

    2. EMR上のApacheSparkでPostgresqlJDBCソースを使用する

    3. CREATETABLEの後にテーブルが存在しません

    4. mysqlで正規表現の先読み/後読みを作成する方法