繁体   English   中英

如何使用字符串通配符和 LIKE 进行 SQL 查询?

[英]How to do a SQL query using a string wildcard and LIKE?

我是 python 的新手,目前正在学习使用 SQL 和 python。 我有以下代码:

word = input("Enter a word: ")
query = cursor.execute("SELECT * FROM Dictionary WHERE Expression LIKE '%s%' " % word)
results = cursor.fetchall()

第二行引发错误,因为我认为我不能像那样使用 '%s%'? 我将如何改变它以便能够完成这项工作? 我希望能够将所有相关条目返回给用户输入。 因此,如果用户输入“rain”,那么我希望查询返回所有可能的结果,例如“raining”、“rainy”等。谢谢。

您应该使用cursor.execute()参数替换而不是字符串格式,以防止 SQL 注入。

然后使用CONCAT()%包围搜索字符串。

query = cursor.execute("SELECT * FROM Dictionary WHERE Expression LIKE CONCAT('%', %s, '%' "), (word,))

你可以试试

query = cursor.execute(f"SELECT * FROM Dictionary WHERE Expression LIKE '%{word}%' ")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM