SHOW COLUMNS
命令を求めているわけではありません。
Heidisql と同様に機能するアプリケーションを作成したいと考えています。このアプリケーションでは、SQL クエリを指定でき、実行すると、クエリ結果を表す行と列を含む結果セットが返されます。結果セットの列名は、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()