php - PHP Mysql 以 1 递增,按某个字段分组
问题描述
看下面的表格
+----+---------+---------+----+---------+---------+
| 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 和两个 kyle。现在发生的情况是,如果我添加另一个 stan,我需要代码来查看订单的最大数量是多少,然后在订单字段中添加 +1 的行。
简而言之,向mysql表中添加一行,按名称将顺序增加一个+1组。我如何在 PHP 和 Mysql 中实现这一点?或者我认为只能在 Mysql Query 中处理?
所以,如果我需要添加以下信息,
5 stan(计算顺序) 3 香蕉真。
解决方案
尽管按名称分组是个坏主意,因为多个人可以有相同的名字,但我认为解决方案如下所示:
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/#!9/01db84/1
添加多个值:
insert into orders(name,`order`,one,two,three)
select name, max(`order`)+1 , 3, 'banana', true
from orders
where name='stan'
group by name;
推荐阅读
- c# - 可以调用 action 方法(来自 action 方法)并让 ASP.Net Core 注入 [FromQuery] 参数吗?
- reactjs - 如何使用 Prismic 和服务器端渲染接收和映射动态 URL
- jquery - 字符串末尾的空格不被视为空格
- java - 处理:弧码只创建圆。如何正确识别开始值和停止值
- unity3d - 如何限制transform.translate在球体内
- jquery-ui - 如何改善取消按钮的行为并使关闭与取消相同?
- model - Yii2:如何将必需的属性添加到复选框列表?
- python - 使用 eval() 导入的 python 问题
- java - 休眠 ddl 验证 smallint 与 int2
- python - pip 总是重新安装压缩包,即使已经安装