如何在 mysql 数据库中搜索包含字符串中字母的字段

Posted

技术标签:

【中文标题】如何在 mysql 数据库中搜索包含字符串中字母的字段【英文标题】:How to search in a mysql database the fields that contains the letters from a string 【发布时间】:2016-12-14 00:33:00 【问题描述】:

我需要一点帮助。我想在数据库中搜索我传递的字母。例如,如果我输入单词“steve”,则查询必须查找包含字母“stve”的所有名称。我试过了:

"SELECT * FROM users WHERE name LIKE 'steve%'  or name like '%steve'  or name like '%steve%'";

但它并没有做我想要的,因为它会寻找模式。同样的情况发生在:

"SELECT * FROM users WHERE INSTR(`name`, 'steve') > 0";

请你帮帮我。

【问题讨论】:

要从单词中搜索单个字母,您应该使用正则表达式RLIKE 【参考方案1】:

可能是大小写问题??如果你使用下面的查询。

"SELECT * FROM users WHERE lower(name) LIKE 'steve%'  or lower(name) like '%steve'  or lower(name) like '%steve%'";

确保您的 steve 也是小写。

【讨论】:

【参考方案2】:

看这里mysql search for right words | fixing spelling errors

您可以使用SOUNDEXSOUNDS LIKE,但这很昂贵,可能不是您想要的。如果您使用 php,也许您可​​以返回所有行并使用 levestien(sp) shift 进行解析?

【讨论】:

以上是关于如何在 mysql 数据库中搜索包含字符串中字母的字段的主要内容,如果未能解决你的问题,请参考以下文章

使用3个字母的单词在mysql上进行全文搜索

以随机顺序搜索包含特定字母的列表中的字符串

如何搜索包含非字母数字或空格字符的行?

mysql模糊查询

MySql 模糊查询范围查询

字符串数组搜索