2010-11-21 47 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。