mysql - mysql:将列名更改为数据的值
问题描述
我想创建另一个表,列名是表的值之一。我希望动态更改列名。
例如,
+-----------------+------------+------------+--------------+---------------+
| name | continent | area | population | gdp |
+-----------------+------------+------------+--------------+---------------+
| Afghanistan | Asia | 652230 | 25500100 | 20343000 |
| Albania | Europe | 28748 | 2831741 | 12960000 |
| Algeria | Africa | 2381741 | 37100000 | 188681000 |
+-----------------+------------+------------+--------------+---------------+
+-------------+
| Asia |
+-------------+
| Afghanistan |
+-------------+
+-------------+
| Europe |
+-------------+
| Albania |
+-------------+
+-------------+
| Africa |
+-------------+
| Algeria |
+-------------+
这在mysql中可能吗?我不知道如何开始这个。
解决方案
我可以提供一个算法
- 创建表
trigger
后insert
- 使用下面的 mysql 查询检查表是否存在以大陆的名称
SELECT * FROM information_schema.tables WHERE table_schema = 'yourdb'
AND table_name = 'continentName' LIMIT 1;
- 如果存在,则
insert
使用 name 的新值进入该表 - else
create
带有大陆和insert
值的表
希望能帮助到你
推荐阅读
- python-3.x - 日期(以月为单位)的差异将变为负数,“某些”日期(例如 Sep-74)被更改为“2074-09-01”?
- flutter - 从子子小部件通知父小部件
- google-apps-script - 如何使用自定义函数在谷歌电子表格列中返回数组?
- reactjs - React + i18next:为什么我的嵌套键不起作用?
- c# - C# Localization = true 原因“属性‘文本’的代码生成失败。”
- javascript - Knex.js 多个 hasTables 似乎创建了推送数组
- python - AWS CDK,为 Route53 中的现有托管区域创建别名记录
- android - 将鼠标悬停在 Android Studio 中的代码完成选项上时如何查看方法文档?
- swift - 在导航控制器中测试 topviewcontroller
- java - 如何使用 Selenium 和 Java 从 html 中提取文本 2?