ajax search 如何检查某个词组是否包含搜索到的词
ajax search how to check if certain phrase contain the searched words
所以我正在做一个 AJAX 搜索栏。现在我只知道如何搜索确切的词。我的 table
示例
ID|Skillset|Description|
1|game|i love game
2|photography|i love to take photo
3|game|game is my forte
现在我有这个查询来搜索数据库中的确切单词
PHP
$sql = "SELECT userdatafiles.UserID,Name,Link,Title FROM userdatafiles JOIN users ON userdatafiles.UserID = users.UserID WHERE Skillsets = '$searchBar' GROUP BY UserID ORDER BY RAND()";
所以如果用户输入游戏,它会显示匹配游戏的所有技能。
我想改进的是,我不只是搜索“技能集”列,而是同时搜索“技能集”和“描述”列。我希望用户能够输入 'gam' 之类的内容,而不是搜索完全匹配的词,只要有包含 'gam' 的词就会显示出来,它会在技能集和描述中搜索,示例 gam 是 'game' 的一部分,或者是 'i love game' 的一部分。我该怎么做?
您应该使用 LIKE 进行比较,并使用 CONCAT 来 select 您的字段搜索:
$sql = "SELECT userdatafiles.UserID, Name, Link, Title
FROM userdatafiles ud JOIN users u ON userdatafiles.UserID = users.UserID
WHERE concat(ud.Skillsets, ud.description) LIKE '%$searchBar%'
GROUP BY UserID ORDER BY RAND()";
所以我正在做一个 AJAX 搜索栏。现在我只知道如何搜索确切的词。我的 table
示例ID|Skillset|Description|
1|game|i love game
2|photography|i love to take photo
3|game|game is my forte
现在我有这个查询来搜索数据库中的确切单词
PHP
$sql = "SELECT userdatafiles.UserID,Name,Link,Title FROM userdatafiles JOIN users ON userdatafiles.UserID = users.UserID WHERE Skillsets = '$searchBar' GROUP BY UserID ORDER BY RAND()";
所以如果用户输入游戏,它会显示匹配游戏的所有技能。
我想改进的是,我不只是搜索“技能集”列,而是同时搜索“技能集”和“描述”列。我希望用户能够输入 'gam' 之类的内容,而不是搜索完全匹配的词,只要有包含 'gam' 的词就会显示出来,它会在技能集和描述中搜索,示例 gam 是 'game' 的一部分,或者是 'i love game' 的一部分。我该怎么做?
您应该使用 LIKE 进行比较,并使用 CONCAT 来 select 您的字段搜索:
$sql = "SELECT userdatafiles.UserID, Name, Link, Title
FROM userdatafiles ud JOIN users u ON userdatafiles.UserID = users.UserID
WHERE concat(ud.Skillsets, ud.description) LIKE '%$searchBar%'
GROUP BY UserID ORDER BY RAND()";