我得到了不同的结果,我理解为来自两个不同接口的相同查询。第一个是mysql shell:
mysql> select * from table where sub_date > '2012-11-08' order by sub_date asc limit 1\G
*************************** 1. row ***************************
id: **176041922**
第二个是我用一个小功能来测试一个查询,该查询将根据日期时间字段“sub_date”提取一定数量的记录:
>>> r_query('>', '2012-11-08', '1')
((**18393664L**, 3, .....)
这是python模块:
import MySQLdb
myuser = MySQLdb.connect(host='localhost', user='myuser', passwd='mypass', db='mydatabase')
cur = myuser.cursor()
def r_query(oper, date, limit):
cur.execute("""select * from table where sub_date %s %s order by sub_date asc limit %s""" % (oper, date, limit))
result = cur.fetchall()
print result
答案 0 :(得分:4)
我对python几乎一无所知。但我很确定你需要在日期参数周围添加额外的引号,以便在查询字符串中引用它。可能更像是:
cur.execute("""select * from table where sub_date %s '%s' order by sub_date asc limit %s""" % (oper, date, limit))
(注意第二个%s周围的额外引号)。