![]() |
1
16
对于固定且已知的列,下面介绍如何操作(我冒昧地将表命名为“grades”): 创建不同查询的联合并执行它。 由于需要实际数据作为列标题,因此联合的第一部分将如下所示:
仅此查询就将复制结果,因此我们需要通过添加
我们工会的第一排将包括
使用相同的逻辑,我们的第二行将如下所示:
为了得到那条线,我们将使用 CONCAT() GROUP_CONCAT() 功能:
我们将把这一行存储到一个新变量中:
创建线条:我们需要创建两个查询,如下所示:
因为我们事先不知道原始表中有多少行,所以我们将使用变量来生成不同的
使用此代码段,我们可以创建子查询:
我们将把它与第一列数据(即第二列的名称)一起放入变量names@line1中:
将它们结合起来:我们的三个变量现在包含:
我们只需要使用
整个解决方案:
输出: +-------+------+-------+ | id | 1 | 2 | +-------+------+-------+ | Name | Ram | Shyam | | Marks | 45 | 87 | +-------+------+-------+ 2 rows in set (0.00 sec) 结束语:
|
![]() |
2
0
听起来你要找的是对数据的交叉表(或转置)操作。 http://onlamp.com/pub/a/onlamp/2003/12/04/crosstabs.html -虽然有点过时,但不确定现在是否有更有效的方法来做这件事。对我来说已经足够好了。 |
![]() |
3
-1
在命令行上,您可以用\G结束查询以实现此目的 例如
|
![]() |
Karlo · PHP Sqlite PDO最新版本 4 月前 |
![]() |
Malte · 检查远程服务器上是否存在文件(使用PHP)[关闭] 4 月前 |
![]() |
Bard.Mus · 迁移后的数据库字符集环境 5 月前 |