可以尝试使用 where
方法来构建复杂的查询条件,例如:
$where = [
['title', 'like', '%Think%'],
['content', 'like', '%PHP%'],
'_logic' => 'OR',
['status', '=', '1'],
];
$result = Db::name('article')->where($where)->select();
这里使用了数组来描述复杂的查询条件,最后使用 where
方法来将条件应用到查询中。在数组中,数组元素之间的关系默认为 AND
,如果想要使用 OR
,需要在前一个条件数组中添加 _logic
元素,并将其值设置为 OR
。这样就可以在模糊查询的基础上添加其他的查询条件了。
在使用 where
方法构建条件查询时,可以使用 _logic
参数指定当前条件和前一个条件之间的逻辑关系。这个参数有以下几种取值:
-
AND
:表示当前条件和前一个条件之间的逻辑关系为 “与”。 -
OR
:表示当前条件和前一个条件之间的逻辑关系为 “或”。
默认情况下,where
方法连接的条件之间的逻辑关系为 “与”。如果需要使用 “或” 的逻辑关系,可以在前一个条件数组中添加 _logic
元素,并将其值设置为 “或”。例如:
$where = [
['name', 'like', '%John%'],
'_logic' => 'OR',
['age', '>', 18]
];
$result = Db::name('user')->where($where)->select();
这里的查询条件为:名字中包含 “John” 或者年龄大于 18 岁。使用 _logic
参数可以灵活构建复杂的条件查询。