如何选择查找真值表要返回的列?我的数据:
| nam | X | Y |
| Bob | 2 | 5 |
| Jan | 1 | 6 |
查找表
| prop| SHOW |
| nam | true |
| X | false|
| Y | true |
有点像SELECT from data (columns which have "true" in lookup)
导致:
| nam | Y |
| Bob | 5 |
| Jan | 6 |
使用数据透视表
模式(MySQL v5.7)
CREATE TABLE tab1 (
`nam` VARCHAR(3),
`X` INTEGER,
`Y` INTEGER
);
INSERT INTO tab1
(`nam`, `X`, `Y`)
VALUES
('Bob', '2', '5'),
('Jan', '1', '6');
CREATE TABLE tab2 (
`prop` VARCHAR(3),
`SHOW` VARCHAR(5)
);
INSERT INTO tab2
(`prop`, `SHOW`)
VALUES
('nam', 'true'),
('X', 'false'),
('Y', 'true');
查询#1
SELECT CONCAT ('SELECT ',GROUP_CONCAT(CONCAT('`',prop,'`')),' FROM tab1;')
INTO @sql
FROM tab2 WHERE `SHOW` = 'true';
没有要显示的结果。
查询#2
PREPARE stmt FROM @sql;
没有要显示的结果。
查询3
EXECUTE stmt;
| nam | Y |
| --- | --- |
| Bob | 5 |
| Jan | 6 |
没有要显示的结果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句