我有以下表格my_table主键id设置为AUTO_INCREMENT。如何添加一组“行”并在MySQL中增加他们的“组ID”?
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)
,其中由“让”条款只会在查询开始评估一次。
在我看来,如果您能够从其他字段的值构造“data_column”的值,“data_column”在功能上将依赖于其他字段,因此是多余的。如果它是真实的数据,则有人必须输入它。 – wildplasser 2012-04-15 11:51:46