gpt4 book ai didi

MySQL FULLTEXT 在字符串的开头或结尾搜索单词

转载 作者:行者123 更新时间:2023-11-29 01:41:24 25 4
gpt4 key购买 nike

发布这个,这样我也许可以从几个小时的搜索中拯救一些其他可怜的笨蛋,或者更好的是,从 MySQL 领域比我更聪明的人那里得到更好的答案。 ;-)

当使用 FULLTEXT 索引搜索 MySQL 时,如何指定我只想要以特定字符串开头或结尾的匹配项?

本质上,我想要

的行为
SELECT `idColumn` FROM `someTable` WHERE `textColumn` LIKE '%foo';

一个简单的索引和上面的查询是行不通的,因为 MySQL 不会将索引用于以通配符开头的查询。所以我添加了一个 FULLTEXT 索引并开始查询:

SELECT `idColumn` FROM `someTable` WHERE MATCH(`textColumn`) AGAINST ('foo');

接近,但匹配 textColumn 中的任何位置的“foo”。

编辑:这是 MySQL 5.6.1 上的 InnoDB 表

我如何限制它只在结束(或开始)时匹配?

最佳答案

到目前为止我想出的最佳答案(部分灵感来自 https://stackoverflow.com/a/6289012/977046 )是使用 HAVING 子句来过滤我的全文结果,la:

SELECT `idColumn` FROM `someTable` 
WHERE MATCH(`textColumn`) AGAINST ('foo')
HAVING `textColumn` LIKE ('%foo');

关于MySQL FULLTEXT 在字符串的开头或结尾搜索单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20621024/

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