可以在where子句中传递函数的返回值

时间:2016-08-08 18:50:31

标签: python mysql python-2.7 mysql-python

我有一个python代码,显示特定天数的站点ID和气温列表。在下面的代码中,我已将日期作为列表传递。但这是繁琐的编码,因为我必须在列表中写下所有日期。有什么方法可以将函数的返回值传递给where子句。我想知道如何在下面的查询中传递包含开始日期和结束日期的值范围。以下是代码段:

import MySQLdb
import os,sys
import datetime
path="C:/Python27/"
conn = MySQLdb.connect (host = "localhost",user = "root", passwd = "CIMIS",db = "cimis")
c = conn.cursor()
message = """select stationId,Date,airTemperature from cimishourly where stationId in (2,7) and Date in ('2016,01,01','2016,01,04') """
c.execute(message,)
result=c.fetchall()
for row in result:
    print(row)
conn.commit()
c.close()

1 个答案:

答案 0 :(得分:0)

是的,您可以替换查询中函数的返回值。因为message只是一个字符串,所以你可以像任何其他字符串那样连接它。

message = """select stationId,Date,airTemperature from cimishourly where stationId in (2,7) and Date in (""" + functionToGetDates() + """)"""

括号可以在函数中或原始字符串中格式化,就像我选择的那样。