1 つのクエリを使用して複数の行を挿入していますが、明らかに、ID 列は各行を自動的にインクリメントします。別の ID 列を作成し、クエリ中に挿入されたすべての行で ID を同じままにしたいと考えています。したがって、1 つのクエリで 10 行を挿入する場合、10 行すべての ID を「1」にする必要があります。これはどのように行うことができますか?助けてくれてありがとう
質問する
4982 次
1 に答える
9
私があなたの質問を正しく理解していれば、ステートメントID
の特定のグループに対してを提供してください。INSERT
このスキーマがあると仮定します
CREATE TABLE TableName
(
RecordID INT AUTO_INCREMENT PRIMARY KEY,
OtherColumn VARCHAR(25) NOT NULL,
GroupID INT NOT NULL
)
これには、次の 2 つのステートメントを使用できます。
1.) 最後の値を取得しGroupID
、 だけインクリメントします1
。
SELECT COALESCE(MAX(GroupID), 0) + 1 AS newGroupID FROM TableName
2.) 実行したら、値を変数に格納します。すべての挿入ステートメントにこの変数を使用し、
$groupID = row['newGroupID'];
$insert1 = "INSERT INTO TableName(OtherColumn, GroupID) VALUES ('a', $groupID)";
$insert2 = "INSERT INTO TableName(OtherColumn, GroupID) VALUES ('b', $groupID)";
$insert3 = "INSERT INTO TableName(OtherColumn, GroupID) VALUES ('c', $groupID)";
更新 1
于 2013-04-22T02:20:05.773 に答える