【python+mysql】mysql语句的执行,结果捕获,及如何在mysql语句中包含变量

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结果中的第一条数据


你可能感兴趣的:(【python+mysql】mysql语句的执行,结果捕获,及如何在mysql语句中包含变量)