-1
각 항목에 대해 임의의 고유 값을 생성하는 새 열을 mysql 테이블에 추가하려고합니다. 어떻게 PHP 스크립트 나 SQL 명령을 통해 이미 존재하는 모든 행을 업데이트 할 수 있습니까?mysql 열을 추가하고 모든 사용자에 대해 값을 생성하십시오.
각 항목에 대해 임의의 고유 값을 생성하는 새 열을 mysql 테이블에 추가하려고합니다. 어떻게 PHP 스크립트 나 SQL 명령을 통해 이미 존재하는 모든 행을 업데이트 할 수 있습니까?mysql 열을 추가하고 모든 사용자에 대해 값을 생성하십시오.
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() . "')";
왜 CHAR ((RAND() * 26) 97)를 사용 : 당신은 또한
uniqid()
기능을 사용할 수 있습니까? – David그건 8 문자가 아니라 한 문자 만 반환합니다. –
아하하. 그래서 어떻게 PHP 스크립트 에서이 기본값을 사용하거나 새로운 행을 입력 할 때마다? – David