You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MATCH AGAINST函数双列全文检索失效问题求助

问题解决思路
  • 修正SQL语法错误
    你的SQL语句存在语法问题:WHERE子句多了一个未闭合的左括号,正确的查询条件写法应为:

    WHERE MATCH(title, description) AGAINST(? IN NATURAL LANGUAGE MODE)
    
  • 移除主键索引强制指定语句
    代码里的USE INDEX(PRIMARY)会强制数据库使用主键索引,完全跳过了你创建的全文索引,这是多列查询无结果的关键原因之一,直接删除这行即可。

  • 确认联合全文索引是否正确创建
    仅给title、description分别建单列全文索引的话,MATCH(title, description)的写法不生效,必须创建包含这两列的联合全文索引。执行以下SQL创建:

    ALTER TABLE feeds ADD FULLTEXT INDEX ft_title_description(title, description);
    
  • 修正后的完整代码

    <?php
    
    $s = "search keyword";
    
    $query = "
        SELECT source,title,description,link,pubdate FROM feeds
        WHERE MATCH(title,description) AGAINST(? IN NATURAL LANGUAGE MODE)
        LIMIT 40
    ";
    
    $st = $cn->prepare($query);
    $st->bind_param("s",$s);
    $st->execute();
    $result = $st->get_result();
    

内容的提问来源于stack exchange,提问作者redevil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 10:35:29