Python 在 postgresql 中找到带单引号的字符串 table
Python find a string with single quote symbol in postgresql table
我需要从我的 psql table 中查找包含多个单引号的字符串。我当前的解决方案是用这样的双单引号替换单引号:
sql_query = f"""SELECT exists (SELECT 1 FROM {table_name} WHERE my_column = '{my_string.replace("'","''")}' LIMIT 1);"""
cursor = connection.cursor()
cursor.execute(sql_query)
对于这种格式有更好的解决方案吗?
我通过这样的查询解决了这个问题
sql_query = f"""SELECT exists (SELECT 1 FROM {table_name} WHERE my_column = %s LIMIT 1);"""
cursor = connection.cursor()
cursor.execute(sql_query, (mystring,))
在这种情况下,它以这样的方式格式化 mystring
,它不会作为 sql 查询执行,也不会导致问题中提到的问题
我需要从我的 psql table 中查找包含多个单引号的字符串。我当前的解决方案是用这样的双单引号替换单引号:
sql_query = f"""SELECT exists (SELECT 1 FROM {table_name} WHERE my_column = '{my_string.replace("'","''")}' LIMIT 1);"""
cursor = connection.cursor()
cursor.execute(sql_query)
对于这种格式有更好的解决方案吗?
我通过这样的查询解决了这个问题
sql_query = f"""SELECT exists (SELECT 1 FROM {table_name} WHERE my_column = %s LIMIT 1);"""
cursor = connection.cursor()
cursor.execute(sql_query, (mystring,))
在这种情况下,它以这样的方式格式化 mystring
,它不会作为 sql 查询执行,也不会导致问题中提到的问题