我有一个 tb_user 数据库,我想使用关键字进行搜索。如果通过文本字段输入这些关键字。如果用户在文本字段中输入一个搜索词,我能够显示结果,但是如果用户在文本区域中输入多个以逗号分隔的关键字,我不确定如何执行查询。请帮忙
我的表中有一列包含这样的值:
用户当前位置
- 德里、比哈尔邦、孟买
- 诺伊达
- 浦那,德里
- 果阿,上,西姆拉
- 德里
可能有更好的方法,但如果我必须利用现有知识来实现它,我会这样做:
$wordString = $_POST['search'];
if (strpos($wordString, ",")){
$words = explode(",", $wordString);
$sql = "SELECT * FROM tb_user WHERE";
foreach($words as $word){
$sql.=" field LIKE '%$word%' OR";
}
$sql = substr($sql, 0, -3);
}
else {
/* NO comma separated values, build normal query */
$sql = "SELECT * FROM tb_user WHERE user_current_location LIKE '%$wordString%'";
}
如果用户输入“delhi,noida”,结果查询将是:
"SELECT * FROM tb_user
WHERE user_current_location LIKE '%delhi%'
OR user_current_location LIKE '%noida%'"
最佳答案
或者您可以使用 REGEX :
SELECT *
FROM tb_user
WHERE user_current_location REGEXP "*delhi*|*noida*";
关于php - 如何使用php进行多个关键字搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23237973/