10 列のうち特に重要な 3 列を含む完全に同一の MYSQL テーブルが数百あります。テーブル名は次のパターンに従います: name1_name2:
Table 1 name: r_t
chr, chromStart, chromEnd...
Table 2 name: y_g
chr, chromStart, chromEnd...
マスターテーブルがあります:
full_table_name, table_name_before_underscore, table_name_after_underscore
1 列目は各テーブルの完全な名前 ( 1 番目のテーブルはr_t 、2 番目はy_g )、2 列目 - アンダースコアの前のテーブル名の最初の部分 ( rおよびy )、3d - アンダースコアの後 ( tおよびg )
すべてのテーブルから chr、chrStart、chromEnd 行を含む UNION_all_table を取得し、データがどのテーブルと区別するためにすべてのテーブル名から 1 番目の部分 (アンダースコアの前) と 2 番目の部分 (アンダースコアの後) で構成される 2 つの追加の列を取得する必要があります。上記の 2 つのテーブルの場合:
Union_all_table:
chr, chrStart, chromEnd, table_name_before_underscore, table_name_after_underscore
1, 3456, 3487, r, t;
1, 3778, 3799, y, g;
プリペアド ステートメントは、Alter テーブル、Update テーブルでは機能しないため、MYSQL だけで行う方法がわかりません。
アイデアをありがとう!