实施搜索查询MySql

时间:2019-10-09 13:30:27

标签: php mysql search

我正在开发一个连接到PHP服务器以检索一些数据的应用程序。我有一堆文章标题为“如何给狗洗澡”。我需要实现一个搜索功能(服务器端),用户可以键入某些单词并搜索可能与查询匹配的文章。

这是我的实际实现方式:

$texto_buscar = $_POST['texto_buscar'];
                         $sql = "SELECT  `id_seccion`,`id_articulo`,`upvotes`, `downvotes`, `titulo_articulo`,`categorias_articulos` 
                         FROM `indice_articulos`
                         WHERE `titulo_articulo` like :texto_buscar
                         ORDER BY `id_articulo` ASC";

                         $stmt0 = $pdo->prepare($sql);
                         $stmt0->bindvalue(':texto_buscar','%'.$texto_buscar.'%');
                         $stmt0->execute();

我看到它不是最佳的,因为如果用户键入一个很长的字符串,LIKE部分将失败。 我一直在搜索,没有找到任何标准,但是我认为这是一个普遍的需求,因此应该有一个标准。那就是我想要的。

请指出正确的方向。

1 个答案:

答案 0 :(得分:1)

您可以使用全文搜索,该搜索肯定是经过优化的。

SELECT * FROM table_name WHERE MATCH(titulo_articulo )
AGAINST('search terms' IN BOOLEAN MODE)

编辑:确保已在要应用完全搜索的列上创建了索引。