问题描述
我已经通过Jupyter连接到了postgres表,并试图通过psycopg2使用连接对其进行过滤。
pd.read_sql_query('''SELECT *
FROM public."TABLE_NAME"
LIMIT 5''',cnx)
返回表的前5行,但是,我要根据条件进行过滤。
条件只是一个整数
pd.read_sql_query('''SELECT *
FROM public."TABLE_NAME"
WHERE TABLE_NAME.COLUMN = 851
LIMIT 5''',cnx)
抛出错误“未定义的列”,并提示我的意思是TABLE_NAME.COLUMN,这正是我所尝试的。
对于解决此问题的任何见解,将不胜感激。
解决方法
尝试一下:
pd.read_sql_query(f'''SELECT *
FROM public.TABLE_NAME
WHERE public.TABLE_NAME.COLUMN = {condition}
LIMIT 5''',cnx)
,
您需要这样写-(此处cnx将是column的值。)
pd.read_sql_query('''SELECT *
FROM public."TABLE_NAME"
WHERE TABLE_NAME.COLUMN = %s
LIMIT 5''',cnx)