PHP 删除第二个记录组名 [英] PHP Remove the Second Record Group Name
本文介绍了PHP 删除第二个记录组名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
任何人都知道如何将记录与同一组分组,但下一行的组名在 PHP/MySQL 中为空,例如:
anyone know how to grouping a record with same group but the next row the group name is blank with PHP/MySQL, for example :
记录在数据库表上:
| id | group_title | item | qty | price
| 1 | G-01 | Mouse | 1 | $5
| 2 | G-01 | Keyboard | 1 | $12
| 3 | G-01 | Keyboard | 1 | $12
| 4 | G-01 | Cable | 1 | $1
| 5 | G-02 | Headset | 1 | $20
预期结果:
| Group | Item Name | Qty | Price/qty | Price Total/item | Price Total/group
| G-01 | Mouse | 1 | $5 | $5 | $30
| | Keyboard | 2 | $12 | $24 |
| | Cable | 1 | $1 | $1 |
| G-02 | Headset | 1 | $20 | $20 | $20
我已经尝试了很多天,但仍然没有解决.提前致谢.
I have tried to do it for many days, but still not solved. Thank in advance.
推荐答案
你可以用一个简单的 IF 和一个 uservar 来做到这一点:
You can do it with a simple IF and a uservar like this query:
SELECT
IF(g.gname = @myg, '', @myg:= gname) AS gname,
g.mytext
FROM grouptab g
CROSS JOIN ( SELECT @myg:='') AS init
ORDER BY g.gname;
示例
MariaDB [test]> select * from grouptab;
+----+-------+---------+
| id | gname | mytext |
+----+-------+---------+
| 1 | G01 | Name 1 |
| 2 | G01 | Name 2 |
| 3 | G02 | Name 88 |
| 4 | G02 | Name 99 |
| 5 | G01 | Name 4 |
+----+-------+---------+
5 rows in set (0.000 sec)
MariaDB [test]> SELECT
-> IF(g.gname = @myg, '', @myg:= gname) AS gname,
-> g.mytext
-> FROM grouptab g
-> CROSS JOIN ( SELECT @myg:='') AS init
-> ORDER BY g.gname;
+-------+---------+
| gname | mytext |
+-------+---------+
| G01 | Name 1 |
| | Name 2 |
| | Name 4 |
| G02 | Name 88 |
| | Name 99 |
+-------+---------+
5 rows in set (0.000 sec)
MariaDB [test]>
这篇关于PHP 删除第二个记录组名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文