如何通过随机位置在 table 之间移动数据?

How to move data between table by random position?

如何按随机位置在 table 之间移动数据?

我使用此代码将所有数据从 table xxx 移动到 table yyy order by id asc,效果很好。

<?PHP
include("connect.php");
$sql = "INSERT INTO yyy
        (name , last_name , tel_no) 
SELECT 
         name , last_name , tel_no
FROM xxx order by id asc";
$dbQuery = mysql_query($sql);
?>

但现在我想将所有数据从 table xxx 移动到 table yyy 的随机位置(而不是 order by id asc),最好的方法是什么?

您可以使用 RAND() 函数对行进行随机排序

ORDER BY RAND()

从 table 中选择数据时, 没有 保证在没有 ORDER BY 语句的情况下 return 数据的顺序。订单不是 table 的 属性 并且执行相同的 SELECT 两次完全有可能 而不是 return 中的数据同样的顺序。

因此,尽管您已使用订单将数据插入 table 中,但您永远无法保证可以按相同的顺序从 table 中取出数据。因此,这样做毫无意义。

当您 SELECT 数据时,即当您想要执行某些业务逻辑或想要向人类显示数据时,您应该添加您想要的任何排序顺序。如果您想随机排序,则可以使用 RAND() 函数,该函数 return 是一个随机浮点值。

select * from xxx order by rand()