我使用sqlalchemy代替MySQLdb,这意味着我正在使用session.execute而不是使用映射器。
但是我遇到了一个可重现的错误,即ValueError:“不完整格式”异常,无论我在查询中使用“%”,这都是一个问题,因为“%”字符是UNIX_TIMESTAMP的日期格式化所必需的MySQL中的LIKE语句。
我尝试过使用“\%”,“\\%”和“%%”而没有运气。
答案 0 :(得分:3)
在具体案例中,您可以使用以下方法:contains(),startswith(),endswith()
用于说明如何使用它:
session.query(Users).filter(User.full_name.startswith('Mr.%s' % first_name)))
# => It is equivalent to requesting full_name LIKE 'Mr.user1%'
session.query(Users).filter(User.full_name.endswith('%s.' % last_name)))
# => It is equivalent to requesting full_name LIKE '%user1.'
session.query(Users).filter(User.full_name.contains('%s' % middle_name)))
# => It is equivalent to requesting full_name LIKE '%user1%'