$query = 'Shaikh Shamim Reza'
数据库列'标题','short_title','内容','记者'
我想用eloquent或原始查询搜索列来搜索
1)匹配整个查询字符串(Shaikh Shamim Reza)如果匹配则返回
如果1为空
2)匹配前两个单词(Shaikh Shamim)如果匹配则返回
如果失败
如果2为空
3)匹配最后两个单词(Shamim Reza)如果匹配则返回
基本上我想首先在整个字符串中搜索单词的任意组合,但不只是单个单词需要搜索单词的组合。
答案 0 :(得分:0)
所以打破它:
$split = explode(' ', $query);
$sql = "SELECT * FROM table WHERE title = :title1 OR title = :title2 OR title = :title3";
$q = $db->prepare($sql);
$q->bind(':title1', $query);
$q->bind(':title2', $split[1] . ' ' . $split[1]);
$q->bind(':title3', $split[1] . ' ' . $split[2]);