php mysql按1递增,按某个字段分组

vfh0ocws  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(379)

看下面的表格

+----+---------+---------+----+---------+---------+
| id |  name   | order   | one|  two    | three   |
+----+---------+---------+----+---------+---------+
|  1 | stan    |    1    |  5 |  suger  |   true  |
|  2 | kyle    |    1    |  4 |  coffe  |    yes  |
|  3 | stan    |    2    |  3 |  banana |    no   |
|  4 | kyle    |    2    |  4 |  orange |    false|
+----+---------+---------+----+---------+---------+

从上面看,我有两个斯坦和两个凯尔。现在发生的是,如果我添加另一个stan,我需要代码来查看有多少是顺序中的最大数,并将加+1的行添加到order字段。
简言之,向mysql表中添加一行,按名称将顺序递增1+1组。如何在php和mysql中实现这一点?或者我认为只能在mysql查询中处理?
所以,如果我需要添加以下信息,
5标准(计算顺序)3香蕉正确。

eeq64g8w

eeq64g8w1#

尽管按名字分组是个坏主意,因为多个人可以有相同的名字,但我认为解决方案如下:

select name, max(`order`)+1 
from orders 
group by name;

http://sqlfiddle.com/#!9/b25dbf/3/0型
要将值添加到表中:

insert into orders(name,`order`) 
select name, max(`order`)+1 
from orders 
where name='stan'
group by name;

http://sqlfiddle.com/#!2011年9月84日
添加多个值:

insert into orders(name,`order`,one,two,three) 
select name, max(`order`)+1 , 3, 'banana', true
from orders 
where name='stan'
group by name;

相关问题