是否可以遍历这样的表:
mysql> select * from `stackoverflow`.`Results`; +--------------+---------+-------------+--------+ | 身份证 | 类型 | CRITERIA_ID | 结果 | +--------------+---------+-------------+--------+ | 1 | 汽车 | 环境 | 1 | | 2 | 汽车 | 气| | | 3 | 汽车 | 年龄 | | | 4 | 自行车 | 环境 | 1 | | 5 | 自行车 | 气| | | 6 | 自行车 | 年龄 | 1 | | 7 | 巴士 | 环境 | 1 | | 8 | 巴士 | 气| 1 | | 9 | 巴士 | 年龄 | 1 | +--------------+---------+-------------+--------+ 一组 9 行(0.00 秒)
进入这个:
+-----+---+-----+------+ | 类型 | 环境 | 气| 年龄 | +-----+---+-----+------+ | 汽车 | 1 | | | | 自行车 | 1 | | 1 | | 巴士 | 1 | 1 | 1 | +-----+---+-----+------+
目的是选择所有CRITERIA_ID
s 并将它们用作列。作为行,我喜欢使用所有的TYPE
s 。
- 所有标准:
SELECT distinct(CRITERIA_ID) FROM stackoverflow.Results;
- 所有类型
SELECT distinct(TYPE) FROM stackoverflow.Results;
但是如何将它们组合成一个视图或smth。像这样?
如果你喜欢玩数据。这是生成表的脚本:
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 );