Php MySQL查询返回缩进的子值
我知道这是一个令人误解和困惑的标题,但我不知道该如何表达我需要做的事情Php MySQL查询返回缩进的子值,php,mysql,sql,wordpress,csv,Php,Mysql,Sql,Wordpress,Csv,我知道这是一个令人误解和困惑的标题,但我不知道该如何表达我需要做的事情 我目前有一个MySQL查询,返回以下示例结果: 但我希望查询不要对子发票编号开始的每行值重复前6列。我希望看到它返回这样的内容: 这样,它就不会一次又一次地重复相同的非需求信息,而只是将发票行项目分解成它们自己的行。这在MySQL中可能吗?我在PHPmyAdmin做这一切 谢谢 给定 MariaDB [sandbox]> select * from docs; +----+--------+--------+ |
我目前有一个MySQL查询,返回以下示例结果: 但我希望查询不要对子发票编号开始的每行值重复前6列。我希望看到它返回这样的内容: 这样,它就不会一次又一次地重复相同的非需求信息,而只是将发票行项目分解成它们自己的行。这在MySQL中可能吗?我在PHPmyAdmin做这一切 谢谢 给定
MariaDB [sandbox]> select * from docs;
+----+--------+--------+
| id | id_sub | id_obj |
+----+--------+--------+
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 1 | 3 |
| 4 | 1 | 10 |
| 5 | 1 | 1 |
| 6 | 1 | 10 |
| 7 | 1 | 3 |
| 8 | 1 | 10 |
| 9 | 1 | 1 |
| 10 | 2 | 30 |
| 11 | 2 | 10 |
| 12 | 2 | 1 |
| 13 | 2 | 10 |
| 14 | 4 | 1 |
| 15 | 5 | 1 |
| 16 | 6 | 1 |
| 17 | 7 | 1 |
| 18 | 7 | 10 |
| 19 | 7 | 11 |
+----+--------+--------+
19 rows in set (0.00 sec)
然后可以使用变量检测id_sub中的更改
select if(id_sub <> @p, id_sub,'') id_sub,
@p:=id_sub p
from docs cross join(select @p:='') p
order by id
与其发布图像(例如,有些人看不到,它们在我当前的网络上被阻止),您可以用一个数据示例做一个示例吗?是的,将一些示例数据作为文本添加到您的问题或SQLFIDLE“我当前有一个返回以下示例结果的MySQL查询”post de query..看起来您需要该查询,您已经有了该查询,将其用作子查询,并在列invoice\u number上旋转,并在行描述中使用GROUP\u CONCAT。和订购数量。我不知道如何让sqlfiddle工作……在运行IF语句的同时,是否可以选择多于1个字段?请阅读concat。
MariaDB [sandbox]> select * from docs;
+----+--------+--------+
| id | id_sub | id_obj |
+----+--------+--------+
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 1 | 3 |
| 4 | 1 | 10 |
| 5 | 1 | 1 |
| 6 | 1 | 10 |
| 7 | 1 | 3 |
| 8 | 1 | 10 |
| 9 | 1 | 1 |
| 10 | 2 | 30 |
| 11 | 2 | 10 |
| 12 | 2 | 1 |
| 13 | 2 | 10 |
| 14 | 4 | 1 |
| 15 | 5 | 1 |
| 16 | 6 | 1 |
| 17 | 7 | 1 |
| 18 | 7 | 10 |
| 19 | 7 | 11 |
+----+--------+--------+
19 rows in set (0.00 sec)
select if(id_sub <> @p, id_sub,'') id_sub,
@p:=id_sub p
from docs cross join(select @p:='') p
order by id
+--------+---+
| id_sub | p |
+--------+---+
| 1 | 1 |
| | 1 |
| | 1 |
| | 1 |
| | 1 |
| | 1 |
| | 1 |
| | 1 |
| | 1 |
| 2 | 2 |
| | 2 |
| | 2 |
| | 2 |
| 4 | 4 |
| 5 | 5 |
| 6 | 6 |
| 7 | 7 |
| | 7 |
| | 7 |
+--------+---+
19 rows in set (0.00 sec)