SQL para seleccionar una fila aleatoriamente
Existen muchas maneras de seleccionar una fila aleatoriamente desde una tabla de base de datos. Aquí expongo algunos ejemplos de sentencias SQL que no requieren una lógica de aplicación adicional, pero cada servidor de base de datos requiere sintaxis de SQL diferentes.
MySQL
[sql]
SELECT column FROM table
ORDER BY RAND()
LIMIT 1
[/sql]
PostgreSQL
[sql]
SELECT column FROM table
ORDER BY RANDOM()
LIMIT 1
[/sql]
Microsoft Sql Server
[sql]
SELECT TOP 1 column FROM table
ORDER BY NEWID()
[/sql]
IBM DB2
[sql]
SELECT column, RAND() as IDX
FROM table
ORDER BY IDX FETCH FIRST 1 ROWS ONLY
[/sql]
Oracle
[sql]
SELECT column FROM
( SELECT column FROM table
ORDER BY dbms_random.value )
WHERE rownum = 1
[/sql]
Siéntete libre de enviar otros ejemplos, variaciones, y sentencias SQL para otros servidores de base de datos en los comentarios.