Mysql 值作为标签矩阵

标签 mysql codeigniter

我在 sql fiddle 中给出的表中有以下数据。

http://sqlfiddle.com/#!9/6d8fd5/1

问题:在以下输出中,它在所有列中重复相同的值。

label           XS        S       M       L      XL      2XL     3XL     4XL
Chest girth     70       70      70      70      70      70      70      70
length          66       66      66      66      66      66      66      66
Sleeve length   62       62      62      62      62      62      62      62

解决方案:我想要 XS 列中的 XS 值,S 列中的 S 值强>列等

我的 SQL 查询:

SELECT
  label,
  VALUE AS XS,
  VALUE AS S,
  VALUE AS M,
  VALUE AS L,
  VALUE AS XL,
  VALUE AS 2XL,
  VALUE AS 3XL,
  VALUE AS 4XL  
FROM
  test
GROUP BY
   label

最佳答案

您可以使用这样的查询来获取结果:

SELECT
  label,
  MAX(IF(size_label = 'XS', VALUE,null)) AS XS,
  MAX(IF(size_label = 'S ', VALUE,null)) AS S,
  MAX(IF(size_label = 'M',  VALUE,null)) AS M,
  MAX(IF(size_label = 'L',  VALUE,null)) AS L,
  MAX(IF(size_label = 'XL', VALUE,null)) AS XL,
  MAX(IF(size_label = '2XL',VALUE,null)) AS 2XL,
  MAX(IF(size_label = '3XL',VALUE,null)) AS 3XL,
  MAX(IF(size_label = '4XL',VALUE,null)) AS 4XL
FROM
  test
GROUP BY
   label;

示例

MariaDB [yourschema]> SELECT
    ->   label,
    ->   MAX(IF(size_label = 'XS', VALUE,null)) AS XS,
    ->   MAX(IF(size_label = 'S ', VALUE,null)) AS S,
    ->   MAX(IF(size_label = 'M',  VALUE,null)) AS M,
    ->   MAX(IF(size_label = 'L',  VALUE,null)) AS L,
    ->   MAX(IF(size_label = 'XL', VALUE,null)) AS XL,
    ->   MAX(IF(size_label = '2XL',VALUE,null)) AS 2XL,
    ->   MAX(IF(size_label = '3XL',VALUE,null)) AS 3XL,
    ->   MAX(IF(size_label = '4XL',VALUE,null)) AS 4XL
    -> FROM
    ->   test
    -> GROUP BY
    ->    label;
+---------------+------+------+------+------+------+------+------+------+
| label         | XS   | S    | M    | L    | XL   | 2XL  | 3XL  | 4XL  |
+---------------+------+------+------+------+------+------+------+------+
| Chest girth   |   70 |   71 |   72 |   73 |   74 |   75 |   76 |   77 |
| length        |   66 |   67 |   68 |   69 |   70 |   71 |   72 |   73 |
| Sleeve length |   62 |   63 |   64 |   65 |   66 |   67 |   68 |   69 |
+---------------+------+------+------+------+------+------+------+------+
3 rows in set (0.00 sec)

MariaDB [yourschema]>

关于Mysql 值作为标签矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38671335/

相关文章:

php - 无法使用 codeigniter php 获取静态下拉值

javascript - Html 表格转 PDF 我想对其进行格式化(页码,第二页不好)

mysql - Yii2 中的 findBySql 未返回预期结果集

mysql - 迁移中精确 10 位数字的整数验证

PHP MySQL 如果日期和时间不可用添加到警报消息

php - 如果记录存在于另一个表中,则 MySQL INSERT

php - 在 CodeIgniter 中检查 Ajax 请求

php - 社交网站 IM/聊天系统的想法

javascript - 在模态上获取重复数据后,我可以使用编辑操作删除重复数据吗?

javascript - 使用 ejs 模板和 MYSQL 在 Node js 中进行服务器端分页