sqlalchemy "неполный формат" проблемы

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

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

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

1 ответ

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

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

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%'
Другие вопросы по тегам