[英]PHP Mysql Increment by 1 with group by some field
在下面看
+----+---------+---------+----+---------+---------+
| 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|
+----+---------+---------+----+---------+---------+
如您從上方看到的,我有兩個斯坦和兩個凱爾。 現在發生的事情是,如果我添加一個標准位,我需要代碼來查看順序中的最大數量是多少,並在訂單字段中添加+1。
簡而言之,在mysql表中添加一行,按名稱將順序按一個+1組遞增。 如何在PHP和Mysql中實現呢? 還是我認為只能在Mysql Query中處理?
因此,如果我需要添加以下信息,
5斯坦(計算順序)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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.