本案例实现了,单字段多搜索词模糊匹配查询和多字段同个搜索词模糊匹配查询,或的关系
在thinkPHP模型查询中,一般有两种方式:数组方式和闭包方式,相对于数组方式只能定义查询条件,闭包方式可以支持更多的连贯操作,包括排序,数量限制等。
在thinkPHP闭包查询中通常使用use进行参数传递
普通闭包查询:
items=ItemModel::all(function( query){
带参数的闭包查询:
items=ItemModel::all(function( query)use(
query->where(‘type’,
})
tp5中的where与whereor同时使用一:
data = db(‘table’)->where(function(
$query->where(‘key1’, value)->whereor(‘key1’,value1);
})->where(‘key2’=>value2,’key3’=>value3)->field(‘key4’)->find();
生成的sql语句为:
find key4 FROM table
WHERE ( key1
= ‘value’ OR key1
= ‘value1’ ) and key2
= ‘value2’
and ‘key3’ = ‘value3’;
二:
data = db(‘table’)->where(function(
$query->where(‘key1’, value)->whereor(‘key1’,value1);
})->whereor(function($query){
$query->where(‘key2’=>value2->whereor(‘key3’=>value3))
})->field(‘key4’)->find();
find ‘key4’ FROM table
WHERE ( key1
= value OR key1
= value1 )
OR ( key2
= ‘value2’ OR key3
= ‘value3’ )
实际场景
tp5 使用数组查询时,一个字段有多个搜索词时的写法
场景一 一个字段多个搜索错
$option‘question’=[
‘like’,’%’.’乐刷’.’%’,
‘like’,’%’.’666′.’%’,
‘or’
]; //测试可行,
分词查询(多条件模糊查询)在讯宝实现了
场景二—–多个字段同时匹配查询或语法 whereor闭包查询,云笔记项目搜索接口有案例 list1=Db::name(‘user_biji’)->page($``$query)use( keyword){ query->whereor(‘title’,’like’,”%
未经允许不得转载:肥猫博客 » tp5 传参闭包查询 tp5中的where与whereor怎么同时使用