sql >> Base de Datos >  >> RDS >> Mysql

PHP MySQL selecciona filas aleatorias

La mejor forma que he encontrado para seleccionar cualquier número de registros aleatorios es con OFFSET en la consulta.

Digamos que quiere 6 registros aleatorios, así que tomaré prestada una respuesta anterior y contaré el número total de amigos en la base de datos.

$sql = mysql_query("SELECT COUNT(*) AS total FROM friends WHERE member_id='". $_SESSION['userid'] ."'");

$get_count = mysql_fetch_array($sql); // Fetch the results

$numfriends = $get_count['total']; // We've gotten the total number

Ahora obtendremos los 6 registros aleatorios del total anterior (esperemos que sea> 6),

$query = mysql_query("SELECT * FROM friends WHERE member_id='". $_SESSION['userid'] ."' LIMIT 6 OFFSET " . (rand(0, $numFriends));


while ($rows = mysql_fetch_array($query))
{
  /// show your $rows here
}

Es posible que el uso de OFFSET no sea el mejor ni el más eficiente, pero funcionó para mí en grandes bases de datos sin atascarlas.