gpt4 book ai didi

MySQL:填充随机迭代位置值

转载 作者:行者123 更新时间:2023-11-29 15:07:25 27 4
gpt4 key购买 nike

我想这对于 MySQL 专业人士来说很容易。给定一个现有的已填充 MySQL-InnoDB 表,例如

key1 | key2 | foobar | position

其中 key1 和 key2 一起构成主键,而position大部分仍为NULL,我最好使用哪种SQL用随机排序但迭代的整数值填充“position”字段?例如。如果有 4 行,那么我想要(仅作为示例订单):

3
1
4
2

背景:我想在网络应用程序中向用户显示表格,并且顺序应该是静态但随机的,即一旦随机决定,然后以可预测的顺序。但有时我需要完全重新调整顺序,而表的其余部分保持不变。另外,我有时需要向表中添加几行新位置,但这些新行的位置不得低于任何现有行,因此需要对其进行迭代,而不是说使用完全随机的 float 。

最佳答案

您可能想尝试这样的事情:

CREATE TEMPORARY TABLE IF NOT EXISTS temptable (
key1 int NOT NULL,
key2 int NOT NULL,
pos int NOT NULL auto_increment,
PRIMARY KEY (key1, key2)
)
SELECT key1, key2
FROM yourtable
ORDER BY RAND();

UPDATE yourtable
SET position = pos
FROM yourtable INNER JOIN temptable
ON yourtable.key1 = temptable.key1
AND yourtable.key2 = temptable.key2;

关于MySQL:填充随机迭代位置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1708646/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com