MySQL将随机行从一个表移动到另一个表

时间:2016-05-14 21:15:06

标签: php mysql random

是否可以以这种方式将随机行(带有一列)移动到另一个表,这样即使同时请求它也没有人获得此数据?

例如:如果您打开我的页面,您将从MySQL获得一个数据,即使与您同时打开此页面也无法获得。

现在我这样做:

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

是否可以采取其他更好的方式?或者,如果只有一列,如何SELECT某个特定行?

2 个答案:

答案 0 :(得分:0)

您可以使用函数RAND()随机排序行并取第一行。

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

答案 1 :(得分:0)

谢谢大家,但我已经这样做了:

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