gpt4 book ai didi

mysql - 将相同的值分配给不同的行特定次数(Mysql)

转载 作者:行者123 更新时间:2023-11-30 00:15:01 25 4
gpt4 key购买 nike

我将在网站上创建一个用户数据库。我正在使用 MySQL。

要求当用户在网站中进行注册过程时,添加用户的表进行以下过程:

当新用户添加到“users”表中时,该表中会有一个名为“group”的列。因此,要求该字段或列生成一个自动递增数字,但具有将每个值重复四 (4) 次的属性。并且还要求将注册过程限制为仅16384个用户。

例如:

id  | name      | group
1 | mark | 1
2 | john | 1
3 | sammy | 1
4 | lucy | 1
5 | richard | 2
6 | michel | 2
7 | jennifer | 2
8 | mary | 2
9 | liz | 3
10 | mike | 3
11 | laura | 3
12 | astrid | 3

我搜索和阅读了很多,但这个问题似乎很独特,我必须接受我对这个主题不太了解,而且我现在刚刚学习 MySQL 和数据库。

我在w3school.com中发现了一些东西,这是我稍微修改过的代码:

在 HTML 上创建表单:

<html>
<body>

<form action="insert.php" method="post">
name: <input type="text" name="name">
<input type="submit">
</form>

</body>
</html>

和 PHP“insert.php”:

<?php
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

// escape variables for security
$name = mysqli_real_escape_string($con, $_POST['name']);
$group= (WHAT CAN I PUT HERE TO MAKE THE AUTO INCREMENT BUT REPEATING THE SAME
NUMBER FOUR TIMES?)

$sql="INSERT INTO Persons (Name, Group)
VALUES ('$name', '$group')";

if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
echo "1 record added";

mysqli_close($con);
?>

我可以在这里做什么来将注册限制为仅 16384 个用户?

最佳答案

目前尚不清楚您想要更新还是选择。这是一个选择版本:

select t.id, t.name,
(case when (@rn := @rn+1) is NULL then NULL
else floor((@rn - 1)/4)
end) as grp
from (select t.*,
from table t cross join
(select @rn := 0) var
order by id
limit 16384
) t;

如果您可以依赖于 id 列是连续且没有间隙的,那么您可以使用它。

如果您想要更新,可以使用update/join来组合这些结果。

关于mysql - 将相同的值分配给不同的行特定次数(Mysql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23725336/

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