在MySQL中使用FULLTEXT是否需要我在PHP中使用其他语法来检索结果?

问题描述

这是我的代码

$terminosBuscados = 'vender la porteria'

$x = $conectarDB->prepare(" 
    SELECT disTINCT 
    titulo,FROM_UNIXTIME(fecha,'%d-%m-%Y') AS fecha,cuerpo,tipoContenido,autor
    FROM searchIndex 
    WHERE match(titulo) 
    AGAINST (' ? ' IN BOOLEAN MODE)
    ORDER BY contenidoID DESC
    ");
$x->bindParam(1,$terminosBuscados);
$x->execute();
$y = $x->fetchAll(PDO::FETCH_ASSOC);

当在PHPMyAdmin中尝试查询本身确实起作用并显示结果时,这根本不显示任何结果($y返回null)。

我刚刚在表中添加了FULLTEXT索引,并修改了工作代码以使用该索引。

解决方法

对于mysql' '是一个字符串,将不会用作palfer holfer。

如果需要空格,请使用CONCAT(' ',?,' ')

$x = $conectarDB->prepare(" 
    SELECT DISTINCT 
    titulo,FROM_UNIXTIME(fecha,'%d-%m-%Y') AS fecha,cuerpo,tipoContenido,autor
    FROM searchIndex 
    WHERE match(titulo) 
    AGAINST (CONCAT(' ',' ') IN BOOLEAN MODE)
    ORDER BY contenidoID DESC
    ");
$x->bindParam(1,$terminosBuscados);
$x->execute();
$y = $x->fetchAll(PDO::FETCH_ASSOC);