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

时间:2015-01-01 14:44:55

标签: php mysql

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

我使用此代码将所有数据从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,这样做的最佳方式是什么?

2 个答案:

答案 0 :(得分:1)

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

ORDER BY RAND()

答案 1 :(得分:1)

从表中选择数据时,如果没有ORDER BY语句,则返回数据的顺序有保证。订单不是表的属性,完全可能执行相同的SELECT两次将以相同的顺序返回数据。

因此,虽然您已经通过订单将数据插入到表中,但您永远无法保证可以以相同的顺序将其从表中删除。因此,这样做毫无意义。

当您选择数据时,即当您想要执行某些业务逻辑或想要向人类显示数据时,您应该添加所需的任何排序顺序。如果您想随机订购,那么您可以使用RAND()函数,该函数返回一个随机浮点值。

select * from xxx order by rand()