sqlalchemy "неполный формат" проблемы - PullRequest
1 голос
/ 13 декабря 2011

Я использую sqlalchemy как замену MySQLdb, это означает, что я использую session.execute, а не мапперы.

Однако я столкнулся с воспроизводимой ошибкой, а именно: ошибка ValueError: «неполный формат», где бы я ни использовал «%» в запросе, это проблема, так как символ «%» необходим для форматирования даты UNIX_TIMESTAMP и оператор LIKE в MySQL.

Я попытался использовать "\%", "\\%" и "%%" без удачи.

1 Ответ

3 голосов
/ 24 января 2012

В конкретном случае вы можете использовать методы: содержит () , начинается с () , заканчивается с ()

Для иллюстрации, какиспользуйте это:

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