我正在努力寻找最有效的方法来做某事,非常感谢您的建议!
我有一个包含以下列的表格:
id
category
category_sequence
other_columns
id 是一个自增列,也是主键。该类别由用户在 UI 上选择。
我想做的是生成一个category_sequence,它是该类别现有的最高category_sequence + 1。
例如,插入几行如下:
- 1,1,1
- 2,1,2
- 3,2,1
- 4、1、3
等等。
显然,我可以运行一个查询来提取最高的category_sequence,向其中添加一个,然后运行我的插入语句。但是有没有一种更有效的方法(一些插入将处于相当大的循环中,因此任何可以加快速度并防止交叉的方法都会很棒)。
提前致谢, 凯夫
最佳答案
你可以试试
insert into mytable
select "categoryselected",coalesce(max(category_sequence),0)+1 from mytable where category = "categoryselected"
如果它是该类别的第一条记录,您可能还必须将其包装在 case 语句中。我没有 mysql 来测试它
关于MySQL - 表中的第二个序列(例如按类别),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1555498/