当前位置: 首页 > 面试题库 >

在MySQL中搜索“全字匹配”

陆飞捷
2023-03-14
问题内容

我想编写一个SQL查询,该查询在文本字段中搜索关键字,但是仅当它是“全字匹配”时(例如,当我搜索“ rid”时,它不应该与“
arid”匹配,但是应该匹配“摆脱”。

我正在使用MySQL。

幸运的是,在该应用程序中性能并不是至关重要的,并且数据库大小和字符串大小都非常小,但是我更喜欢在SQL中而不是在PHP中驱动它。


问题答案:

您可以使用REGEXP[[:<:]][[:>:]]字边界标记:

SELECT *
FROM table 
WHERE keywords REGEXP '[[:<:]]rid[[:>:]]'

2020年更新:(实际上是2018年以上)

MySQL在8.0.4版中更新了RegExp-
Engine,因此您现在需要使用 “ 标准 ”字边界标记\ b:

SELECT *
FROM table 
WHERE keywords REGEXP '\\brid\\b'

另请注意,您需要通过放置第二个反斜杠来逃避反斜杠。



 类似资料:
  • 本文向大家介绍在MySQL中搜索多列以进行行匹配,包括了在MySQL中搜索多列以进行行匹配的使用技巧和注意事项,需要的朋友参考一下 为此,请使用UNION。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是搜索多列的查询- 这将产生以下输出-

  • 问题内容: 我想在我的网页中进行全文搜索。我需要分页进行搜索。我的数据库每张表有50,000+行。我已经改变了我的表,并使其成为索引。该表始终处于更新状态,仍然有一个自动增加的列。而最新的总是在表格的末尾。 但整个查询时间将花费。我通过Google搜索了许多文章,有的文章写道,只有限制字段字长才能帮助更快地进行搜索。但作为一种类型,它会像这样改变一定的长度(我尝试过标题TEXT(500) CHAR

  • 问题内容: 这是我测试过的。 这是create语句。 等号和“赞”效果很好。所以为什么? 问题答案: 全文搜索需要多种多样的方式来消除重复的“噪音”。用最少的数据进行测试将产生较差的结果。将您的整个收藏集投入其中,以获取有意义的内容。如以下某些链接所示,甚至可以尝试搜索最小字数的设置。 停用词 有各种语言的停用词 MySql 列表,这些词表示在搜索过程中忽略的无关紧要的词。该列表已编译到服务器中,

  • 问题内容: 我正在将所有站点代码从使用mysql_ *函数转换为PDO。对于我的需求,PDO上的PHP文档尚不清楚。它为您提供了要使用的功能,但没有详细介绍它们在不同情况下的功能。 基本上,我有一个mysql全文搜索: 实际的语句要长得多,但这基本上就是它的作用。 我的问题是,如何将其纳入PDO? 我知道您不是要在位置标记周围使用引号,那么您是否将它们放在AGAINST()函数中?我包括他们吗?如

  • 问题内容: 使用Sql Server 2008,您如何才能使用全文本搜索实际找到完全匹配的字符串。我对此很难过,只是在网上的任何地方都找不到令人满意的解决方案。 例如,如果我要搜索字符串“ Bojan Skrchevski”,则我希望第一个结果就是那个。 到目前为止,我已经尝试将字符串格式化为“ Bojan * NEAR Skrchevski *”并调用CONTAINSTABLE以获取结果,但是此

  • 由于使用mongodb全文搜索不可能通过“蓝”这个词找到“蓝莓”,所以我想帮助我的用户完成“蓝”到“蓝莓”这个词。要这样做,是否可以查询mongodb全文索引->中的所有单词,我可以使用这些单词作为建议,即用于typeahead.js?