0

我从两个不同的界面得到了不同的结果,我理解为相同的查询。第一个是 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
4

1 回答 1

4

我对python几乎一无所知。但我很确定您需要在日期参数周围加上额外的引号,以便在查询字符串中引用它。可能更像:

cur.execute("""select * from table where sub_date %s '%s' order by sub_date asc limit %s""" % (oper, date, limit)) 

(注意第二个 %s 周围的额外引号)。

于 2012-11-19T15:56:39.213 回答