2

1 つのクエリを使用して複数の行を挿入していますが、明らかに、ID 列は各行を自動的にインクリメントします。別の ID 列を作成し、クエリ中に挿入されたすべての行で ID を同じままにしたいと考えています。したがって、1 つのクエリで 10 行を挿入する場合、10 行すべての ID を「1」にする必要があります。これはどのように行うことができますか?助けてくれてありがとう

4

1 に答える 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 に答える