-5

現在、約 800 列の mysql データベースがあり、頻繁に追加しています。

4 つの文字と数字のランダムな文字列を含む新しいフィールドを追加するにはどうすればよいですか? 例: 4h3k

重複も発生させたくありません。

ありがとうチャップス!

編集

OH MA GAD NO 私は列ではなく行を意味します。

800行!

4

2 に答える 2

4

コメントがすでに示しているように。なぜ800列が必要なのですか? データベース構造の市長の欠陥のようです。何を保存したいかを説明していただければ、適切な構造をセットアップするお手伝いをいたします。800 (ランダム!) 列は決してあなたが望むものではありません。

この構造を維持する予定がある場合は、 を使用SHOW COLUMNS FROM mydb.mytable WHERE FIELD='newcolname'して、それが既に存在するかどうかを確認できます。

しかし、データベース モデルを再考することを強くお勧めします。ランダムな列があるため、どのようにしてそこから物を選択していますか? あなたは常にselect *を使用してから、すべての列をループしますか?

于 2012-12-18T10:03:53.593 に答える
0

これは多分あなたを助けることができます。

// first  u generate string with numbers and letters with length 4 
function genRandomString() {
$length = 4;
$characters = '0123456789abcdefghijklmnopqrstuvwxyz';
$string = '';    

for ($p = 0; $p < $length; $p++) {
    $string .= $characters[mt_rand(0, strlen($characters))];
}

 return $string;
 }
  echo genRandomString();        // will echo one radom string like  4h8l
 // second check if the random string exist in table then use new generated string
 $new_random_string = genRandomString() ;
 $strings = mysql_query("SELECT `string` FROM `table`");
 while ($string = mysql_fetch_row($strings)) {

 if ($new_random_string == $string[0]) 

   echo genRandomString() ;

 }

 mysql_query("INSERT INTO `table` (`string`) VALUES ('".$new_random_string."')");
于 2012-12-18T10:26:48.430 に答える