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