【发布时间】:2012-08-10 10:18:37
【问题描述】:
是否可以这样遍历表:
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_IDs 并将它们用作列。
作为行,我喜欢使用所有 TYPEs 。
- 所有标准:
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 );
【问题讨论】: