2010-11-21 81 views
0

我有52个项目,我随机使用php rand函数插入数据库。将随机值插入到mysql数据库中

每个项目的ID都是1 - 52,也有一个值。每13个项目的值为1-13。

项目1-13的值为1-13,而项目14-26也具有值1-13,依此类推直到最后一项52.如何确保在插入到数据库?我会想象模数参与?我想这比数据库更像是一个数学问题!

+0

对不起,我不太了解你的问题。你的意思是ID为1-13的行应该按照随机顺序具有值1-13,然后行14-26也以随机顺序具有值1-13? – waiwai933 2010-11-21 21:42:11

+0

ID 1 = val 1,ID 2 = val 2等等 ID 14 = val1,ID 15 = val 2等等 – 2010-11-21 21:45:14

回答

0

这听起来像你洗牌一副牌。我相信有一个功能shuffle(),它可以做你想做的事(如果你正在使用PHP)

如果这只是代码的请求,那么显然我的答案是不好的。另外,如果你只想用SQL来完成,这是一个不好的答案。

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(); 
0

既然你知道在PHP中的ID,

$value = $id % 13; 
if ($value == 0) $value = 13; 

%运营商(又称模数)为我们提供了当x除以y时的余数。 第二行给出13而不是0的倍数为13,因为模数将返回0,但我们需要13。