将随机值插入mysql数据库

时间:2010-11-21 21:37:59

标签: mysql math

我有52个项目,我借助php rand函数随机插入数据库。

每个项目的ID为1 - 52,并且还有一个值。每13个项目的值为1 - 13.例如

项目1 - 13的值为1 - 13,而项目14 - 26的值也为1 - 13,依此类推,直到最后一项,52。如何在插入数据库时​​确保该值正确?我会想象模数是否涉及?我想这比数据库更像是一个数学问题!

3 个答案:

答案 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而不是。