2011-12-13 36 views
1

我使用sqlalchemy作爲替換爲MySQLdb的下拉列表,這意味着我正在使用session.execute而不是使用映射器。sqlalchemy「不完整格式」問題

但是,我遇到了一個可重現的錯誤,即ValueError:「不完整格式」異常,無論我在查詢中使用「%」,這是一個問題,因爲日期格式化UNIX_TIMESTAMP時需要「%」字符和MySQL中的LIKE語句。

我嘗試過使用「\%」,「\\%」和「%%」但沒有運氣。

+3

一個代碼示例將是非常有幫助 – van 2011-12-13 21:47:06

回答

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