主キーIDがAUTO_INCREMENTに設定された次のテーブルmy_tableがあります。
id group_id data_column
1 1 'data_1a'
2 2 'data_2a'
3 2 'data_2b'
['data_3a', 'data_3b'] などのデータの配列を取得し、group_idを適切にインクリメントして生成するクエリを作成しようとして立ち往生しています。
id group_id data_column
1 1 'data_1a'
2 2 'data_2a'
3 2 'data_2b'
4 3 'data_3a'
5 3 'data_3b'
WITH 句を使用すると簡単に実行できると思いますが、これは MySQL ではサポートされていません。私は SQL に非常に慣れていないので、データを間違った方法で整理している可能性があります。(グループは、フォームを介して一緒にアップロードされたファイルのグループを表すと想定されています。各行は単一のファイルであり、データ列にはそのパスが格納されます)。
私が考えていた「疑似 SQL」コードは次のとおりです。
INSERT INTO my_table (group_id, data_column)
VALUES ($NEXT_GROUP_ID, 'data_3a'), ($NEXT_GROUP_ID, 'data_3b')
LETTING $NEXT_GROUP_ID = (SELECT MAX(group_id) + 1 FROM my_table)
ここで、構成された 'LETTING' 句は、クエリの開始時に 1 回だけ評価されます。