2017-07-13 13 views
0

多くの行を挿入したいが、ある列にインクリメントしたい。私の例では、変数を5000に設定しています。行をデータベースに追加するたびに、変数を1つ増やしたいと思います。mysqliでフィールドをインクリメントする方法

ここでは、これは自動インクリメントとは関係ありません。増分するフィールドが必要な理由があります。ここで

は私のINSERTクエリ

$incrementField=5000; 
$query="INSERT INTO `table` (`incrementField`,`this`,`morestuff`) 
    SELECT ?,`this`,`morestuff` FROM `someTable`"; 
$stmt = $db->prepare($query); 
$stmt->bind_param('i',$incrementField); 
$stmt->execute(); 
$stmt->close(); 

のですか?私はそれを増やしたいのですか? 私は試したことがありますか?+1?。+ 1とすべての種類の並べ替え、しかし何も動作するようです。

+0

PHPで変数をインクリメントします。 –

+1

フィールドを「自動インクリメント」に設定しようとしましたか? – ZioBafio

+2

** **列名**のパラメータを使用することはできません** – RiggsFolly

答えて

0

私は今、それが結局行うことができますので、適切

$incrementField=5000; 
$query="INSERT INTO `table` (`incrementField`,`this`,`morestuff`) 
    SELECT @position := ifnull(@position, ?) + 1),`this`,`morestuff` FROM `someTable`"; 
$stmt = $db->prepare($query); 
$stmt->bind_param('i',$incrementField); 
$stmt->execute(); 
$stmt->close(); 

作品これに対する答えを持っています。 解決策が見つからないという人が増えれば、解決策を見つけることができます。だから、それができないと言ったすべての人に、そうすることができます。

0

ロジックはSQL AUTO_INCREMENTを必ず使用してください。私は、列は一意の識別子であると考えられていて、それはPRIMARY KEYとも呼ばれています。

+0

いいえ、一意の識別子ではありません。この列では、番号を繰り返すことができます。私は既にidという一意の識別子を持っています。これは既に自動完了に設定されています。また、自動完了が主キーであるため、テーブルに2つの自動補完フィールドを持つことはできません –

関連する問題