Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

ORDER OLEH RAND() alternatif

Jika Anda memiliki kolom ID lebih baik melakukan:

-- create a variable to hold the random number
SET @rownum := SELECT count(*) FROM table;
SET @row := (SELECT CEIL((rand() * @rownum));

-- use the random number to select on the id column
SELECT * from tablle WHERE id = @row;

Logika pemilihan nomor id acak dapat dipindahkan ke level aplikasi.

SELECT * FROM table ORDER BY RAND LIMIT 40

sangat tidak efisien karena MySQL akan memproses SEMUA record dalam tabel melakukan scan tabel penuh pada semua baris, mengurutkannya secara acak.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. periksa entri duplikat vs gunakan hasil errorInfo PDO

  2. Bagaimana cara memilih maksimum 3 item per pengguna di MySQL?

  3. Apakah Token FCM (firebase cloud messaging) untuk satu perangkat atau untuk satu akun?

  4. Buat database mysql dan pengguna dalam skrip bash

  5. SQL - WHERE Kondisi pada SUM()