MySQL データベースから 1 つの列を取得する小さな方法があります。動作しますが、次のようなタプルを返しています:
((1L,),(2L,),(3L,), ...)
リストだけを取得したい[1L, 2L, 3L,...]
(または long ではなく int にキャストしたい)。ループを記述して手動で実行できることはわかっていますが、おそらく、より洗練された、より Python 的な方法があります。
これは、MySQL の結果をリストに直接取得する方法があり、聞いたことがない場合に備えて、関数のコードです。
def getFTPSentNotamIds():
selectedIds = None
try:
# Connect to database
db = MySQLdb.connect(host=Constants.database_host,
user=Constants.database_user,
passwd=Constants.database_passwd,
db=Constants.database_name)
# Create a cursor to execute queries
cursor = db.cursor()
# Get every ObjectID of those objects which are Selected=1
cursor.execute('SELECT ObjectID FROM MYTABLE WHERE Selected=1')
# Get the NOTAMS
selectedIds = cursor.fetchall()
except MySQLdb.Error, e:
print 'ERROR ' + str(e.args[0]) + ': ' + str(e.args[1])
return selectedIds