Mysql
 sql >> база данни >  >> RDS >> Mysql

ORDER BY RAND() изглежда по-малко от случаен

RAND() се изпълнява само веднъж на заявка. Можете да проверите това, като погледнете набора от резултати.

Ако се опитвате да получите произволна поръчка, трябва да използвате или 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Групиране по X или Y?

  2. MYSQL Query - Вземете най-новия коментар, свързан с публикацията

  3. Python:ModuleNotFoundError:Няма име на модул 'mysql'

  4. Превключване от SQLite към MySQL с Flask SQLAlchemy

  5. AWS RDS поддържа ли MySQL като хранилище на документи