sql >> Databasteknik >  >> RDS >> Mysql

Random Row i MySQL

Detta undviker upprepad utvärdering av random() under aggregeringen och bör också vara snabbare, som min(id) och random() utvärderas endast en gång.

SELECT u.* 
FROM   users u
      ,(SELECT min(id) AS min_id, max(id) AS max_id FROM users) x
WHERE  u.id > (floor((x.max_id - x.min_id + 1) * rand()) + x.min_id)
LIMIT  1;


  1. Fix "ERROR 1250 (42000):Tabell '...' från en av SELECT:erna kan inte användas i ORDER-satsen" i MariaDB

  2. Hur får jag det aktuella tidszonsnamnet i Postgres 9.3?

  3. InterfaceError (0, '')

  4. Hur man lägger till ett underformulär till ett formulär i Access 2016