使用PHP MYSQL搜索查询搜索每个搜索词

时间:2017-03-17 14:13:08

标签: php mysql sql search


我想在搜索栏中提取基于输入关键字的记录 假设我在My SQL Table的列中有3个以下的记录

  1. 美丽的小孩子。
  2. 动物园里的美丽兔子。
  3. 天然水。
  4. 现在,如果搜索查询包含Beautiful,它将返回前2个记录 如果搜索查询包含Beautiful (anything),则它将不返回任何内容。

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

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

    是否有任何其他查询或方法可以实现这样的结果?

1 个答案:

答案 0 :(得分:0)

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";