2011-09-20 30 views

回答

0

使用SQL查詢:

UPDATE that_table SET that_column = CONCAT(
CHAR(FLOOR(RAND() * 26)+97), 
CHAR(FLOOR(RAND() * 26)+97), 
CHAR(FLOOR(RAND() * 26)+97), 
CHAR(FLOOR(RAND() * 26)+97), 
CHAR(FLOOR(RAND() * 26)+97), 
CHAR(FLOOR(RAND() * 26)+97), 
CHAR(FLOOR(RAND() * 26)+97), 
CHAR(FLOOR(RAND() * 26)+97) 
) 
WHERE that_column IS NULL; 

這種填充與隨機生成的字符串列。字符串具有8個字符的固定長度;字符是a-z。在上例中,97是a的ASCII碼,26是字母表中的字符數。

當經由PHP插入行可以使用上面提到的表達原樣:

$query = "INSERT INTO that_table (foo, bar, that_column) 
VALUES ('foo', 'bar', CONCAT(
    CHAR(FLOOR(RAND() * 26)+97), 
    CHAR(FLOOR(RAND() * 26)+97), 
    CHAR(FLOOR(RAND() * 26)+97), 
    CHAR(FLOOR(RAND() * 26)+97), 
    CHAR(FLOOR(RAND() * 26)+97), 
    CHAR(FLOOR(RAND() * 26)+97), 
    CHAR(FLOOR(RAND() * 26)+97), 
    CHAR(FLOOR(RAND() * 26)+97) 
))"; 

或者可以寫在PHP隨機串生成功能。您也可以使用uniqid()功能:

$query = "INSERT INTO that_table (foo, bar, that_column) 
VALUES ('foo', 'bar', '" . uniqid() . "')"; 
+0

爲什麼要用 CHAR((RAND()* 26)+97) 這麼多,不只是一次? – David

+0

這將返回只有一個字符,而不是8. –

+0

ahhhhh我明白了。那麼,如何在php腳本中使用它或每次輸入新行時將其作爲默認值? – David