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