【问题标题】:How to use MATCH AGAINST in Mysql instead of LIKE如何在 Mysql 中使用 MATCH AGAINST 而不是 LIKE
【发布时间】:2018-04-18 17:11:44
【问题描述】:

众所周知,LIKE 太慢了,但是当我尝试使用 MATCH AGAINST 时,它没用。

当“part”是单词的一部分而不是完整的单词时,我需要一些操作数来给出结果,例如 LIKE '%part%'。

我已经试过了

SELECT * FROM `table` WHERE MATCH (title) AGAINST ('*part*' IN BOOLEAN MODE)
SELECT * FROM `table` WHERE MATCH (title) AGAINST ('+*part*' IN BOOLEAN MODE)

它不工作

有什么办法吗?

【问题讨论】:

    标签: mysql sql sql-like


    【解决方案1】:

    您只能从单词的开头匹配带有通配符的单词。正如documentation 解释的那样:

    *

    星号用作截断(或通配符)运算符。不像 其他运算符,它被附加到要受影响的单词上。字 如果它们以 * 运算符前面的单词开头,则匹配。

    【讨论】:

    • 所以没有其他方法可以执行“LIKE %%”之类的操作?
    猜你喜欢
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    • 2013-01-24
    • 2012-05-22
    • 1970-01-01
    • 1970-01-01
    • 2012-03-15
    • 2011-11-10
    相关资源
    最近更新 更多