2016-05-14 15 views
0

Ist es möglich, eine zufällige Zeile (mit einer Spalte) in eine andere Tabelle auf diese Weise zu verschieben, so dass niemand diese Daten erhalten, auch wenn sie gleichzeitig anfordern?MySQL zufällige Zeile von einer Tabelle in eine andere verschieben

Zum Beispiel: Wenn Sie meine Seite öffnen, erhalten Sie Daten von MySQL, die niemand bekommen wird, selbst wenn Sie diese Seite gleichzeitig mit Ihnen öffnen.

Jetzt mache ich es auf diese Weise:

mysql_query("INSERT INTO `ShowRow` SELECT * FROM `AllRows` WHERE 1 LIMIT 1"); 
mysql_query("DELETE FROM `AllRows` LIMIT 1"); 

Ist es möglich, einige andere bessere Weise zu tun? Oder wie zu SELECT eine bestimmte Zeile, wenn es nur eine Spalte gibt?

+0

, warum Sie Ihre Datenbank betroffen kompromittiert werden? Was ist der Grund dafür? –

+0

^oder ein Auslöser. Wie auch immer, warum sollte die WHERE-Klausel verwendet werden, wenn nur eine Spalte existiert? – Chay22

+1

Es gibt keine Garantie, das zu erreichen, was Sie auch mit zufälliger Auswahl unter Verwendung der Rand-Funktion versuchen, es sei denn, jeder angezeigte Gegenstand wird in einer anderen Tabelle gespeichert, so dass die nächste Auswahl überprüfen kann, ob sie gerade angezeigt wird. –

Antwort

0

Sie alle danken, aber ich bin gekommen, um es auf diese Weise zu tun:

$accCount = mysqli_query($connect, "SELECT * FROM AllRows"); 
$accCount = mysqli_num_rows($accCount); 
$RandAcc = rand(0, $accCount); 
$result = mysqli_query($connect, "SELECT * FROM `AllRows`"); 
$ReplaceRandAcc = mysqli_result($result, $RandAcc); 

mysqli_query($connect, "INSERT INTO `ShowRow` SELECT * FROM `AllRows` WHERE login='".$ReplaceRandAcc."'"); 
mysqli_query($connect, "DELETE FROM `AllRows` WHERE login='".$ReplaceRandAcc."'"); 

function mysqli_result($res, $row, $field=0) { 
    $res->data_seek($row); 
    $datarow = $res->fetch_array(); 
    return $datarow[$field]; 
} 
0

Sie können die Funktion RAND() verwenden, um Zeilen zufällig zu sortieren und die erste zu übernehmen.

SELECT * FROM AllRows ORDER BY RAND() LIMIT 1, 1

+0

Der Link links http://sql.sh/fonctions/rand - Nicht jeder kann die französische Sprache verstehen. Stack ist meist eine englischsprachige Seite. –

+0

Sorry, natürlich antworte ich zu schnell: / – Norckan

Verwandte Themen