Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann ich sicherstellen, dass sich zwei zufällig ausgewählte Zeilen voneinander unterscheiden?

Sie können nur einmal ausführen, erhalten aber stattdessen zwei, sodass Sie nie dieselbe Zeile auswählen:

$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'];

Nebenbemerkung:Seien Sie vorsichtig mit ORDER BY rand() -Klausel, da es bei großen Datensätzen langsam sein wird. Sie können eine Alternative mit der großartigen Antwort von @Bill Karwin verwenden