如何在 Mysql 服务器中查找全部和部分匹配

Posted

技术标签:

【中文标题】如何在 Mysql 服务器中查找全部和部分匹配【英文标题】:How to find the full and partial match in Mysql server 【发布时间】:2021-07-26 01:56:57 【问题描述】:

用户提供输入,输入可以是全名或部分名称。查询应显示所有匹配的输出。这是我正在使用的代码

c.execute("SELECT name FROM ALLNAMES WHERE Cname ='" + ('%'+ Input.get()+'%') + "';")

我正在使用 python,输出是一个看起来不正确的空列表。

【问题讨论】:

【参考方案1】:

您需要like 而不是=

c.execute("SELECT name FROM ALLNAMES WHERE Cname LIKE '" + ('%'+ Input.get()+'%') + "';")

【讨论】:

【参考方案2】:

您的意思是 like 查询,而不是平等。 所以在这种情况下,它将是:

c.execute("SELECT name FROM ALLNAMES WHERE Cname LIKE '"+ ('%'+ Input.get()+'%') + "';")

https://www.mysqltutorial.org/mysql-like/

请注意,将查询参数放在查询字符串中并不是一个好主意。它很容易被 sql 注入攻击。至少使用查询参数。

【讨论】:

以上是关于如何在 Mysql 服务器中查找全部和部分匹配的主要内容,如果未能解决你的问题,请参考以下文章

数据结构开发(14):KMP 子串查找算法

mysql 如何查找同一表中两行之间的差异并列出不匹配的记录? mysql在表中查找不匹配的行

es深入搜索之部分匹配

如何在 MySQL 中使用 LIKE 和部分匹配的 VARCHAR 字段的索引?

mysql复制(高可用架构方案的基础)

部分字符串匹配mysql