0

単純な選択ステートメントを実行する必要がありますが、動的でフィルター処理された列名のリストに基づいて、テーブル内の小文字の列名だけになります。テーブル構造は私の手に負えず、頻繁に変化します。事前に列名を知ることはできません。大文字の名前 (不要) と小文字の名前 (必要) があることだけです。

テーブル:

COL_UPPERCASE_1 COL_UPPERCASE_2 col_lowercase_1 col_lowercase_2
data1           data2           data3           data4
data5           data6           data7           data8

これを使用して、必要な列名のリストを取得できます。

select group_concat(column_name) FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE (`TABLE_SCHEMA` = 'the_database' AND `TABLE_NAME` = 'the_table' AND column_name = BINARY LOWER(column_name));

必要な列のリストを返します。

+---------------------------------+
| group_concat(column_name)       |
+---------------------------------+
| col_lowercase_1,col_lowercase_2 |
+---------------------------------+

私の質問: そのクエリの結果を select ステートメントに効果的に挿入するにはどうすればよいですか? 例えば

select <column list from above "select group_concat..." query> from my_table;

具体的には、上記の例では、次のものと同等のものが必要です。

select col_lowercase_1,col_lowercase_2 from the_table;

戻る:

+---------------------------------+
| col_lowercase_1 col_lowercase_2 |
+---------------------------------+
| data3           data4           |
| data7           data8           |
+---------------------------------+
4

1 に答える 1