簡體   English   中英

PHP Mysql按1遞增,並按某些字段分組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM