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结束查询以实现此目的 例如
|
hello_programmers · Mysql从其他表输出一列 1 年前 |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |
Popo · Sql查询:返回数据库中不可用的where条件 1 年前 |
Hamdan Nuramdani · 对账单中一周内不同表中的数据求和 1 年前 |
Kugelfisch · 用php为数据库加密数据 1 年前 |