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

¿Cómo puedo asegurarme de que dos filas seleccionadas al azar sean diferentes entre sí?

Puede ejecutar solo una vez pero obtener dos en su lugar para que nunca elija la misma fila:

$result = mysqli_query($conn,"SELECT * FROM photos ORDER BY rand() LIMIT 2");
$row = $result->fetch_assoc();
$row2 = $result->fetch_assoc();
// invoke `->fetch` twice to get the first and second row
$img1link = $row['link'];
$img2link = $row2['link'];

Nota al margen:Tenga cuidado con eso ORDER BY rand() cláusula ya que será lento en grandes conjuntos de datos. Puede usar una alternativa con la gran respuesta de @Bill Karwin