2012-09-09 65 views

回答

1

對於MySQL中產生5位密碼,您可以使用類似以下內容:

SUBSTRING(conv(floor(rand() * 99999999999999), 20, 36), 1, 5); 

如果你想解決的數據庫級別的一切,你可以看看提供的循環語法通過存儲過程。

CREATE PROCEDURE doiterate(p1 INT) 
BEGIN 
    label1: LOOP 
    SET p1 = p1 + 1; 
    IF p1 < 10 THEN 
     ITERATE label1; 
    END IF; 
    LEAVE label1; 
    END LOOP label1; 
    SET @x = p1; 
END; 

來自實例:http://dev.mysql.com/doc/refman/5.5/en/loop.html

+0

你說得對,我沒有考慮到。 –

+0

我在上面編輯了我的答案 - 應該更好......你怎麼看? (我不是那種計算熵的經驗,所以只要告訴我什麼時候我錯了;)) –

+0

那麼僞隨機問題呢? – TigOldBitties

0
<?php 
function generate($length, $chars = '') { 
    if (!$chars) $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'; 
    $ret = ''; 
    for ($x=0;$x<$length;$x++) { 
     $ret .= $chars[rand(0,strlen($chars)-1)]; 
    } 
    return $ret; 
} 

for ($x=0;$x<200;$x++) { 
    Sql::exec('INSERT INTO users (id,password) VALUES (NULL,?)',generate(5)); // just replace with your own function to execute SQL 
} 
?>