php - 如何使用php进行多个关键字搜索

标签 php mysql

我有一个 tb_user 数据库,我想使用关键字进行搜索。如果通过文本字段输入这些关键字。如果用户在文本字段中输入一个搜索词,我能够显示结果,但是如果用户在文本区域中输入多个以逗号分隔的关键字,我不确定如何执行查询。请帮忙

我的表中有一列包含这样的值:

用户当前位置

  1. 德里、比哈尔邦、孟买
  2. 诺伊达
  3. 浦那,德里
  4. 果阿,上,西姆拉
  5. 德里

可能有更好的方法,但如果我必须利用现有知识来实现​​它,我会这样做:

$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/

相关文章:

mysql - 手动将外键插入表时允许自由输入

php - 哪些技术是在线实时聊天应用程序的最佳选择?

php - 如何在 Api-Platform 中手动将资源序列化为 Json?

php - php : var_export() returns\0 null characters, 和 ucfirst()、strtoupper() 等中的 UTF-8 问题表现异常

python - - 在Python中通过MySQL的计数找到top x?

mysql - 从mysql中的表中选择当前不等于1

javascript - 如何在 Controller 中动态创建http post语句

php - mysql 如果 num 行大于 0 显示结果,否则回显没有最近的事件 - 不工作?

mysql - node.js mySQL 发送具有 INSERT 语句格式的数组

php - 如何使名称变量可点击(mysqli)?