我有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