【发布时间】:2020-07-31 08:59:36
【问题描述】:
我试图在运行时从表中获取未知列的总数。
这是 source_table:
+----+------------+-----------+-----------+-----------+-----------+-----------+
| ID | Name | Unknown 1 | Unknown 2 | Unknown 3 | Unknown 4 | Unknown 5 |
+----+------------+-----------+-----------+-----------+-----------+-----------+
| 1 | abc | 10.00 | 18.00 | 5.00 | 21.00 | 6.00 |
+----+------------+-----------+-----------+-----------+-----------+-----------+
| 2 | ghq | 22.00 | 14.00 | 12.00 | 11.00 | 23.00 |
+----+------------+-----------+-----------+-----------+-----------+-----------+
| 3 | xyz | 35.00 | 8.00 | 16.00 | 7.00 | 4.00 |
+----+------------+-----------+-----------+-----------+-----------+-----------+
这是我想要达到的结果表:
+-----------+-----------+
| MyColumns | Total |
+-----------+-----------+
| Unknown 1 | 67.00 |
+-----------+-----------+
| Unknown 2 | 40.00 |
+-----------+-----------+
| Unknown 3 | 33.00 |
+-----------+-----------+
| Unknown 4 | 39.00 |
+-----------+-----------+
| Unknown 5 | 33.00 |
+-----------+-----------+
我已经弄清楚了上面未知列(第一个字段)的查询。但是,我很难使用下面的尝试代码来获取总列(第二个字段):
SELECT `COLUMN_NAME`
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_SCHEMA` = 'mydb'
AND `TABLE_NAME` = 'source_table'
AND `COLUMN_NAME` NOT LIKE 'ID'
AND `COLUMN_NAME` NOT LIKE 'Name';
如果我能使用上面的代码获取总列(第二个字段),我将不胜感激。
更新 1: @Akina 回答 result_table — 已在此处引用更正
''',COLUMN_NAME, '''.
+-----------+-----------+
| MyColumns | Total |
+-----------+-----------+
| 10.00 | 67.00 |
+-----------+-----------+
| 18.00 | 40.00 |
+-----------+-----------+
| 5.00 | 33.00 |
+-----------+-----------+
| 21.00 | 39.00 |
+-----------+-----------+
| 6.00 | 33.00 |
+-----------+-----------+
【问题讨论】:
-
使用常用字符串函数根据获取的列名列表构建完整的查询文本,然后使用prepared statement执行该文本。
标签: mysql