python中执行mysql语句
方法一:
cur.execute('select data from datanum where nodeid = %s and datatype = %s and ctime = %s', (nodeid, datatype, curctime)
方法二:
sql = "select ctime from datanum where ctime > " + str(ptime) + "_and ctime <= " + str(current_ctime) + "_and nodeid = "+str(nodeid)
cur.execute(sql)
注意:
采用第一种方法,格式描述符为%s,表示格化式一个对象为字符。实际程序中,我一直用的%s,好像与nodeid, datatype, curctime的格式无关。(此处不太清楚原因)
采用第二种方法,+ 连接字符串时注意字符串里的空格,为了强调这个,上面这个语句中的“_”表示空格。实际程序中不能这么用_。由于+是用来连字符串的,所以变量需要时字符串类型,若不是需要强制转换。我在这不管是不是都转换成字符串,肯定没错了吧。
若mysql语句中like一个变量则无法使用第二种方法实现。
date = 20151028
sql = "select * from datanum where ctime like "+date+"'"
cur.execute(sql)
获取select得到的数据条数,捕获mysql语句的结果
count = cur.execute('select data from datanum where nodeid = %s and datatype = %s and ctime = %s', (nodeid, datatype, curctime)# count
即为满足select中条件的数据条数
cur.fetchall() # 捕获所有select结果
cur.fetchone() # 捕获所有select结果中的第一条数据