私はSqlAlchemyを使用して、手作りのSQLを使用してPGデータベースからデータをフェッチしています。SQLのような演算子 '%'を含むクエリを試行していますが、ループを介してSqlAlcjhemyをスローするようです。
sql = """
SELECT DISTINCT u.name from user u
INNER JOIN city c ON u.city_id = c.id
WHERE c.designation=upper('fantasy')
AND c.id IN (select id from ref_geog where short_name LIKE '%opt')
"""
# The last line in the above statement throws the error mentioned in the title.
# However if the last line is change to:
# AND c.id IN (select id from ref_geog where short_name = 'helloopt')
# the script runs correctly.
#
# I also tried double escaping the '%' i.e. using '%%' instead - that generated the same error as previously.
connectDb()
res = executeSql(sql)
print res
closeDbConnection()
この誤解を招くエラーメッセージの原因と、修正方法を知っている人はいますか?
[[編集]]
誰もが尋ねる前に、上記の機能に特別なものや空想的なものはありません。たとえば、関数executeSql()は単にconn.execute(sql)を呼び出し、結果を返します。変数connは、以前に確立されたデータベースへの接続です。
executeSql(...)
か?そしてまた、あなたが本当に持っているんRETURNING *
でSELECT
声明?