如何选择查找真值表返回的列?我的数据:
| 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) 导致:
SELECT from data (columns which have "true" in lookup)
| nam | Y | | Bob | 5 | | Jan | 6 |
cyej8jka1#
使用数据透视表架构(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 |
没有要显示的结果。db fiddle视图
1条答案
按热度按时间cyej8jka1#
使用数据透视表
架构(mysql v5.7)
查询#1
没有要显示的结果。
查询#2
没有要显示的结果。
查询#3
没有要显示的结果。
db fiddle视图