我不是在要求SHOW COLUMNS
命令。MySQL:從查詢中獲取列名或別名
我想創建一個與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()
謝謝Daniel DiPaulo ......這就是我正在尋找的答案。我只寫了我自己的SQL解析器,以便可以提取選擇列名稱/別名。工作正常。 – panofish 2011-02-16 20:38:02
感謝user625477 ...這是更好的答案。爲什麼沒有stackoverflow發送電子郵件給我更新的答案? – panofish 2013-04-25 14:01:09