gpt4 book ai didi

mysql - 这两个查询之间的区别

转载 作者:行者123 更新时间:2023-11-30 00:22:12 25 4
gpt4 key购买 nike

我正在运行 2 个查询,它们应该会显示相同的结果,

第一个查询:

SELECT count( id ) AS cv FROM table_name WHERE field_name LIKE '%êêê01, word02, word03%'

第二个查询:

SELECT count( id ) AS cv FROM table_name WHERE match(field_name) against('êêê01, word02, word03')

但是第一个显示的行数比第二个多,有人可以告诉我为什么吗?

我正在该字段上使用全文索引,

谢谢。

最佳答案

我快速做了一个research以下引用应该可以回答您的问题:

MySQL 上的 MATCH 的一个问题是它似乎只匹配整个单词,因此搜索“bla”不会匹配值为“blah”的列。

documentation for match 中也对此进行了描述

默认情况下,MATCH() 函数针对文本集合对字符串执行自然语言搜索。集合是包含在 FULLTEXT 索引中的一组或多列列。搜索字符串作为 AGAINST() 的参数给出。对于表中的每一行,MATCH() 返回一个相关值;也就是说,搜索字符串与 MATCH() 列表中指定的列中该行中的文本之间的相似性度量。

同时like更“强大”,因为它可以查看单个角色:

根据 SQL 标准,LIKE 在每个字符的基础上执行匹配,因此它可以产生与 = 比较运算符不同的结果:

这解释了为什么 like 返回的结果多于 match

关于mysql - 这两个查询之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23146322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com