[解決済み] MySQLの クエリからカラム名やエイリアスを取得する
2023-02-15 14:53:55
質問
私は
SHOW COLUMNS
コマンドを使用します。
SQLクエリを指定し、実行すると、クエリ結果を表す行と列を含む結果セットを返す、heidisqlと同様に動作するアプリケーションを作成したいと思います。結果セットのカラム名は、SQLクエリで定義された選択されたカラムと一致する必要があります。
私の Python プログラムでは (
MySQLdb
を使用)私のクエリは行と列の結果のみを返し、列名は返しません。 次の例では、カラム名は次のようになります。
ext
,
totalsize
そして
filecount
. SQLは最終的にプログラムから外部に出すことになります。
これを動作させるために考えられる唯一の方法は、選択された列名を抽出するために、独自の SQL パーサー ロジックを書くことです。
提供された SQL の列名を取得する簡単な方法はありますか? 次に、クエリが返す列の数を知る必要があります。
# Python
import MySQLdb
#===================================================================
# connect to mysql
#===================================================================
try:
db = MySQLdb.connect(host="myhost", user="myuser", passwd="mypass",db="mydb")
except MySQLdb.Error, e:
print "Error %d: %s" % (e.args[0], e.args[1])
sys.exit (1)
#===================================================================
# query select from table
#===================================================================
cursor = db.cursor ()
cursor.execute ("""\
select ext,
sum(size) as totalsize,
count(*) as filecount
from fileindex
group by ext
order by totalsize desc;
""")
while (1):
row = cursor.fetchone ()
if row == None:
break
print "%s %s %s\n" % (row[0], row[1], row[2])
cursor.close()
db.close()
どのように解決するのですか?
cursor.descriptionは、それぞれの[0]が列のヘッダーであるタプルのタプルを与えます。
num_fields = len(cursor.description)
field_names = [i[0] for i in cursor.description]
関連
-
[解決済み] 列の値に基づいてDataFrameから行を選択するにはどうすればよいですか?
-
[解決済み] Pandas DataFrameからカラムを削除する
-
[解決済み] MySQLでコマンドラインを使用してユーザーアカウントのリストを取得するにはどうすればよいですか?
-
[解決済み] MySQLのクエリ結果をCSV形式で出力するにはどうすればよいですか?
-
[解決済み] os/path 形式に関係なく、パスからファイル名を抽出します。
-
[解決済み] MySQLデータベースの名前を素早く変更する(スキーマ名を変更する)方法は?
-
[解決済み] MySQLデータベースのテーブルのサイズを取得する方法は?
-
[解決済み] MySQL で特定のカラム名を持つすべてのテーブルを見つけるにはどうすればよいですか?
-
[解決済み】Pandas DataFrameのカラムヘッダからリストを取得する。
-
[解決済み】MySQLのDatetimeカラムにデフォルト値を設定する方法とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] DataFrameの文字列、dtypeがobjectの場合
-
[解決済み] 2つの線分が交差しているかどうかを確認するにはどうすればよいですか?
-
[解決済み] なぜ(0-6)は-6=偽なのか?重複
-
[解決済み] 文字列から先頭と末尾のスペースを削除するには?
-
[解決済み] 古いバージョンのPythonにおける辞書のキーの並び順
-
[解決済み] PyMongoで.sortを使用する
-
[解決済み] tensorflowのCPUのみのインストールでダイナミックライブラリ 'cudart64_101.dll' を読み込めなかった
-
[解決済み] Pythonの文字列書式をリストで使う
-
[解決済み] Pythonの辞書にあるスレッドセーフについて
-
[解決済み] Alembicアップグレードスクリプトでインサートやアップデートを実行するにはどうすればよいですか?