2011-09-20 7 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에서 임의의 문자열 생성 함수를 작성할 수 있습니다. 너무 많은뿐 아니라 한 번

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

왜 CHAR ((RAND() * 26) 97)를 사용 : 당신은 또한 uniqid() 기능을 사용할 수 있습니까? – David

+0

그건 8 문자가 아니라 한 문자 만 반환합니다. –

+0

아하하. 그래서 어떻게 PHP 스크립트 에서이 기본값을 사용하거나 새로운 행을 입력 할 때마다? – David

관련 문제