如何通过随机位置在 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()
如何按随机位置在 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()