首页 > 解决方案 > 在 Flask App 中从 SQLite 转换为 MySQL 时出现 1064 错误

问题描述

我正在开发一个 Flask 应用程序,并将 SQlite 转换为 MySQL,一直使用 SQLAlchemy 作为 ORM。曾经有效的查询现在抛出以下错误。有人可以发现 SQL 的问题,所以我可以追溯到 SQLAlchemy 代码吗?

sqlalchemy.exc.ProgrammingError: (mysql.connector.errors.ProgrammingError) 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line 7
[SQL: SELECT user_post.post_id AS user_post_post_id
FROM user_post
WHERE user_post.feed_id IN (SELECT feed.id
FROM feed
WHERE EXISTS (SELECT 1
FROM feed_folder, folder
WHERE feed.id = feed_folder.feed_id AND folder.id = feed_folder.folder_id AND folder.id = %(id_1)s)) AND user_post.user_id IS %(user_id_1)s]
[parameters: {'id_1': 1, 'user_id_1': 1}]

来自

feed_list = db.session.query(Feed.id).filter(Feed.folders.any(id=folder)).subquery()
post_list = db.session.query(UserPost.post_id).filter(UserPost.feed_id.in_(feed_list), UserPost.user_id.is_(user.id)).all()

标签: mysqlflasksqlalchemy

解决方案


推荐阅读