是否可以遍历这样的表:
mysql> select * from`stackoverflow`.`结果`;
+ -------------- + --------- + ------------- + -------- +
| ID | TYPE | CRITERIA_ID | 结果
+ -------------- + --------- + ------------- + -------- +
| 1 | 汽车| env | 1 |
| 2 | 汽车| 煤气| |
| 3 | 汽车| 年龄| |
| 4 | 自行车| env | 1 |
| 5 | 自行车| 煤气| |
| 6 | 自行车| 年龄| 1 |
| 7 | 巴士| env | 1 |
| 8 | 巴士| 煤气| 1 |
| 9 | 巴士| 年龄| 1 |
+ -------------- + --------- + ------------- + -------- +
设置9行(0.00秒)
变成这个:
+ ------ + ----- + ----- + ----- +
| TYPE | env | 煤气| 年龄|
+ ------ + ----- + ----- + ----- +
| 汽车| 1 | | |
| 自行车| 1 | | 1 |
| 巴士| 1 | 1 | 1 |
+ ------ + ----- + ----- + ----- +
目的是选择所有CRITERIA_IDs并将它们用作列。作为行,我喜欢使用所有TYPEs。
所有条件: SELECT distinct(CRITERIA_ID) FROM stackoverflow.Results;
所有类型 SELECT distinct(TYPE) FROM stackoverflow.Results;
但是如何将它们组合成一个视图或某物。像这样?
如果您喜欢玩数据。这是生成表的脚本:
CREATE SCHEMA `stackoverflow`;
CREATE TABLE `stackoverflow`.`Results` (
`ID` bigint(20) NOT NULL AUTO_INCREMENT,
`TYPE` varchar(50) NOT NULL,
`CRITERIA_ID` varchar(5) NOT NULL,
`RESULT` bit(1) NOT NULL,
PRIMARY KEY (`ID`)
)
ENGINE=InnoDB;
INSERT INTO `stackoverflow`.`Results`
(
`ID`,
`TYPE`,
`CRITERIA_ID`,
`RESULT`
)
VALUES
( 1, "car", env, true ),
( 2, "car", gas, false ),
( 3, "car", age, false ),
( 4, "bike", env, true ),
( 5, "bike", gas, false ),
( 6, "bike", age, true ),
( 7, "bus", env, true ),
( 8, "bus", gas, true ),
( 9, "bus", age, true );