我有52个项目,我借助php rand函数随机插入数据库。
每个项目的ID为1 - 52,并且还有一个值。每13个项目的值为1 - 13.例如
项目1 - 13的值为1 - 13,而项目14 - 26的值也为1 - 13,依此类推,直到最后一项,52。如何在插入数据库时确保该值正确?我会想象模数是否涉及?我想这比数据库更像是一个数学问题!
答案 0 :(得分:1)
如果你想纯粹在SQL中这样做,我会按如下方式进行:
首先按顺序定义一个列出所需值的表。
CREATE TABLE cards (
id int auto_increment,
card int,
PRIMARY KEY(id)
);
INSERT INTO cards(card) VALUES(....);
现在你可以像这样创建一个随机化的表
CREATE TABLE shuffled (
id int auto_increment,
card int,
PRIMARY KEY(id),
)
SELECT 0,card FROM cards ORDER BY RAND();
答案 1 :(得分:0)
这听起来像是在洗牌。我相信有一个函数shuffle()可以做你想要的(如果你使用的是PHP)
如果这只是一个代码请求,那么显然我的答案很糟糕。此外,如果您只想在SQL中执行此操作,这是一个错误的答案。
答案 2 :(得分:0)
因为你知道PHP中的id,
$value = $id % 13;
if ($value == 0) $value = 13;
%
运算符(也称为模数)给出了x除以y时的余数。
对于13的倍数,第二行给出13而不是0,因为模数将返回0,但我们想要13而不是。