php - 使用 PHP MYSQL 搜索查询搜索搜索的每个单词

标签 php mysql sql search


我想根据搜索栏中输入的关键字获取记录。
假设我的 SQL 表列中有以下 3 条记录

  1. 漂亮的 child 子。
  2. 动物园里美丽的兔子。
  3. 天然水。

现在,如果搜索查询包含 Beautiful,它将返回前 2 条记录。
如果搜索查询包含Beautiful(anything),它将不会返回任何内容。

我也希望在这种情况下显示前 2 条记录,因为它具有与上面搜索查询中相同的单词beautiful

现在,我正在使用
SELECT * FROM table WHERE name LIKE '%value%' ORDER BY id ASC

是否有任何其他查询或方法可以实现此类结果?

最佳答案

SELECT * FROM table WHERE (name LIKE '%value1%') OR (name LIKE '%value2%') ORDER BY id ASC

等等

因此,您必须将搜索字符串拆分为单独的单词。

$str = yourinput;
$strarray = (explode(" ",$str));
$query = "SELECT * FROM table WHERE ";
Foreach($strarray as $key=>$value){
If($key > 0){
$query = $query . "OR";
}
$query = $query . " (name LIKE '%" . $value . "%') ";
}
$query = $query . "ORDER BY id ASC";

关于php - 使用 PHP MYSQL 搜索查询搜索搜索的每个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42859803/

相关文章:

php - 为什么要实现两个已经相互扩展的接口(interface)?

python - 没有名为 MySQLdb 的模块

sql - 如何在 MySQL 中将日期对象四舍五入到月底?

MySQL 选择每个 id 具有最新值的所有行

php - 使用 Group_by 获取 CodeIgniter 中的最新记录

php - 如何在 php 和 html 上隐藏 div

php - 在 IBM i 7.1 上,是否可以从 PHP cURL 扩展访问 *SYSTEM 证书库?

mysql - 在 MySQL 存储过程中设置 NULL 参数

创建表中的 MySQL 命名空间

SQL Server 查询连接多个表