我有下表my_table,主键id设置为 AUTO_INCREMENT。
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 很陌生,所以也许我以错误的方式组织数据?(一个组应该代表通过表单一起上传的一组文件。每行是一个文件,数据列存储其路径)。
我想到的“Psuedo 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”子句只会在查询开始时计算一次。