我有52个项目,我随机使用php rand函数插入数据库。将随机值插入到mysql数据库中
每个项目的ID都是1 - 52,也有一个值。每13个项目的值为1-13。
项目1-13的值为1-13,而项目14-26也具有值1-13,依此类推直到最后一项52.如何确保在插入到数据库?我会想象模数参与?我想这比数据库更像是一个数学问题!
我有52个项目,我随机使用php rand函数插入数据库。将随机值插入到mysql数据库中
每个项目的ID都是1 - 52,也有一个值。每13个项目的值为1-13。
项目1-13的值为1-13,而项目14-26也具有值1-13,依此类推直到最后一项52.如何确保在插入到数据库?我会想象模数参与?我想这比数据库更像是一个数学问题!
这听起来像你洗牌一副牌。我相信有一个功能shuffle(),它可以做你想做的事(如果你正在使用PHP)
如果这只是代码的请求,那么显然我的答案是不好的。另外,如果你只想用SQL来完成,这是一个不好的答案。
如果你想这样做纯粹是在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();
既然你知道在PHP中的ID,
$value = $id % 13;
if ($value == 0) $value = 13;
的%
运营商(又称模数)为我们提供了当x除以y时的余数。 第二行给出13而不是0的倍数为13,因为模数将返回0,但我们需要13。
对不起,我不太了解你的问题。你的意思是ID为1-13的行应该按照随机顺序具有值1-13,然后行14-26也以随机顺序具有值1-13? – waiwai933 2010-11-21 21:42:11
ID 1 = val 1,ID 2 = val 2等等 ID 14 = val1,ID 15 = val 2等等 – 2010-11-21 21:45:14