我想在搜索栏中提取基于输入关键字的记录
假设我在My SQL Table的列中有3个以下的记录
现在,如果搜索查询包含Beautiful
,它将返回前2个记录
如果搜索查询包含Beautiful (anything)
,则它将不返回任何内容。
我希望在这种情况下也会显示前2个记录,因为它与上面搜索的查询中的字词beautiful
相同。
现在,我正在使用
SELECT * FROM table WHERE name LIKE '%value%' ORDER BY id ASC
是否有任何其他查询或方法可以实现这样的结果?
答案 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";