在Laravel和MySql中进行高级搜索

时间:2018-02-23 19:23:18

标签: mysql laravel search eloquent

$query = 'Shaikh Shamim Reza'

数据库列'标题','short_title','内容','记者'

我想用eloquent或原始查询搜索列来搜索

1)匹配整个查询字符串(Shaikh Shamim Reza)如果匹配则返回

如果1为空

2)匹配前两个单词(Shaikh Shamim)如果匹配则返回

如果失败

如果2为空

3)匹配最后两个单词(Shamim Reza)如果匹配则返回

基本上我想首先在整个字符串中搜索单词的任意组合,但不只是单个单词需要搜索单词的组合。

1 个答案:

答案 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]);