pymysql中的where条件使用in时,占位符的使用方法
代码
date_str = date.strftime('%Y%m%d') market_list = ['shanghai', 'beijing', 'shenzheng'] with conn.cursor() as cur: sql = cur.mogrify( "SELECT 1 FROM CLOSED_DAYS WHERE DELETE_FLAG = 0 AND CLOSED_DAY = %s AND MARKET in %s LIMIT 1", (date_str, market_list)) cur.execute(sql) result = cur.fetchone()
检索到数据后返回的结果是
{'1': 1}
where条件中使用in时,如果有多个占位符时,in条件语句要位于多个where条件的最后,不然会发生表中存在符合数据,但返回的结果是无数据
参考:https://stackoverflow.com/questions/14245396/using-a-where-in-statement