首页 > 解决方案 > PHP搜索查询与CONCAT完全匹配

问题描述

我正在尝试构建一个搜索查询,假设如果我们输入一个词干,它应该显示以词干开头的词以及之后的任何内容。现在,我的代码如下所示:

$sql = "SELECT * FROM `faculty`
    WHERE (CONCAT(`firstName`, ' ', `lastName`,`expertise`,`affiliation`)
    LIKE '%$textSearch%') ORDER BY lastname asc";

如果我在搜索栏中搜索词干,它会显示不必要的词,例如“系统”。

标签: phpmysqlsqlsearchfull-text-search

解决方案


如果您正在寻找跨多个列的搜索,但每个单词必须以搜索词开头,您可能必须使其成为多个 LIKE 语句?

$sql = "SELECT * FROM `faculty` WHERE 
`firstName` LIKE ‘$textSearch%’ OR `lastName` LIKE ‘$textSearch%’ OR `expertise` LIKE ‘$textSearch%’ OR `affiliation` LIKE ‘$textSearch%’ 
 ORDER BY lastname asc";

推荐阅读