根据条件过滤posgres表

问题描述

我已经通过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)