mysqlワークベンチ(SQLエディター)を使用しています。Mysqlクエリブラウザに存在していたように、各クエリの列のリストをコピーする必要があります。例えば
Select * From tb
id、title、keyno、.....のようなフィールドのリストが欲しいです。
mysqlワークベンチ(SQLエディター)を使用しています。Mysqlクエリブラウザに存在していたように、各クエリの列のリストをコピーする必要があります。例えば
Select * From tb
id、title、keyno、.....のようなフィールドのリストが欲しいです。
指定されたテーブルに対して1つ以上の列を取得できるようにしたいということですか?
1番目の方法実行
しSHOW COLUMNS FROM your_table_name
、必要に応じて、データ型がint、デフォルト値がnullなどの列のみを指定することで基本的なフィルタリングを追加します。例:SHOW COLUMNS FROM your_table_name WHERE type='mediumint(8)' AND
null='yes'
2番目の方法 この方法は、すべてのdb列、テーブルなどのレコードを持つMySQLのINFORMATION_SCHEMA内部データベースに保持されている多くのテーブルやその他のプロパティを組み合わせることができるため、もう少し柔軟で強力です。以下のクエリをそのまま使用し、TABLE_NAMEをテーブルに設定しますの列を検索する
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='your_table_name';
一致する列の数を特定のデータベースに制限するにAND TABLE_SCHEMA='your_db_name'
は、クエリの最後に追加します
また、列名を複数の行ではなく単一の行にコンマ区切りのリストとして表示するには、次GROUP_CONCAT(COLUMN_NAME,',')
の代わりに使用できます。COLUMN_NAME
受け入れられる解決策は問題ありませんが、テーブルのフィールド名に制限されています。任意のクエリを処理するには、select句を標準化して、正規表現を使用して列エイリアスのみを削除できるようにします。select句を「要素ごとに1行」としてフォーマットすると、次のように
Select 1 + 1 as Col1, 1 + 2 Col2 From Table
なり
Select 1 + 1 as Col1
, 1 + 2 Col2
From Table
ます。「select要素ごとに1行」バージョンで単純な正規表現を使用して、"^.* "
(引用符を除く)何も置き換えません。正規表現は、行の最後のスペースの前にあるすべてのものを検出するため、列エイリアスにスペースが含まれていないと想定します(したがって、スペースをアンダースコアに置き換えます)。または、「要素ごとに1行」が気に入らない場合は、常に「as」キーワードを使用して、正規表現が把握できるハンドルを指定します。