psycopg2和PostgreSQL的新手,我试图创建一个函数,给定一个字符串,将搜索我的数据库中包含该字符串的所有条目。
到目前为止,我有:
def search(searchString):
""" Let's user search by string for any snippet containing that string """
logging.info("Searching for snippet by string: {!r}".format(searchString))
with connection, connection.cursor() as cursor:
cursor.execute("select * from snippets where message like (%s)", searchString)
searchResults = cursor.fetchall()
return searchResults
所以,让我们在我的数据库中说我有很多字符串包含字符串' testME'。在命令行中,当我尝试$ python myscript.py search 'testME'
在数据库中搜索具有单词' testME'的所有字符串时,在数据库中的条目是' testME'确切地返回,而不是任何其他包含' testME'的字符串的条目。我在这里做错了什么?
答案 0 :(得分:0)
如果没有特别需要使用某个功能,您可以执行以下操作之一:
让python做困难的部分。首先获取表名
SELECT table_name FROM information_schema.tables WHERE table_schema ='public';
使用表名作为字段名称会返回所有字符串 列连接。因此,为所有获取的表名创建 像
这样的查询SELECT * FROM tablename WHERE tablename ILIKE'%searching_this%';
答案 1 :(得分:0)
cursor.execute("""
select *
from snippets
where message like '%' || %s || '%'
""", searchString
)