sqlalchemy“格式不完整”的问题

时间:2011-12-13 18:18:12

标签: python mysql sqlalchemy sql-like

我使用sqlalchemy代替MySQLdb,这意味着我正在使用session.execute而不是使用映射器。

但是我遇到了一个可重现的错误,即ValueError:“不完整格式”异常,无论我在查询中使用“%”,这都是一个问题,因为“%”字符是UNIX_TIMESTAMP的日期格式化所必需的MySQL中的LIKE语句。

我尝试过使用“\%”,“\\%”和“%%”而没有运气。

1 个答案:

答案 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%'