假设:
问题:
我想得到那些标题或正文包含搜索查询的帖子的“用户”。
我目前的代码:
// example of search queries
$search_queries = ['aaa', 'bbb', 'ccc'];
// column names to search in MySQL
$search_column_names = [
'users.name',
'posts.title',
'posts.body'
];
$users = User::leftJoin('posts', 'users.id', '=', 'posts.user_id')
->orWhere(function($q) use ($search_queries, $search_column_names){
foreach ($search_column_names as $key => $name) {
$q->orWhere(function($q) use ($search_queries, $name){
foreach ($search_queries as $key => $search_query) {
$q->where($name, 'like', '%' . $search_query . '%');
}
});
}
})->distinct('users.id')->get();
但我仍然有超过5个不同id的用户(最多50个)。我认为distinct(users.id)
给了我一个理想的结果,但它不起作用。
我已经在网上搜索过了,但找不到解决办法。
提前感谢。
我找到了解决办法。我将帖子表搜索分为两个,其中
s。谢谢!
// column names to search in the database
$search_column_names = [
'users.name'
];
$users = User::
orWhere(function($q) use ($queries, $search_column_names){
foreach ($search_column_names as $key => $name) {
$q->orWhere(function($q) use ($queries, $name){
foreach ($queries as $key => $value) {
$q->orWhere($name, 'like', '%' . $value . '%');
}
});
}
})
->whereIn('users.id', function($q) use ($queries){
$q->select('user_id')
->from(with(new Post)->getTable())
->where(function($q2) use ($queries){
foreach ($queries as $key => $value) {
$q2->orWhere('posts.title', 'like', '%' . $value . '%');
}
});
}, 'or')
->whereIn('users.id', function($q) use ($queries){
$q->select('user_id')
->from(with(new Post)->getTable())
->where(function($q2) use ($queries){
foreach ($queries as $key => $value) {
$q2->orWhere('posts.body', 'like', '%' . $value . '%');
}
});
}, 'or')
->get();
可以使用原始语句。
$users = User::whereRaw("id in(
select distinct user_id from posts
where title like :query or
body like :query
)" , ["query" => "%" . $search_query . "%"])->get();
如何在给定节点下列出多个属性的所有属性和各自的值。 例如,在下面的代码中,我只能搜索一个属性。但我需要搜索10个不同的属性(alttext、img、promos等),并获得相应的值(如果存在)。
我对Sumologic中的搜索查询有点迷茫。我需要获取包含
我有一些问题与WordPress和WP_Query。我想让帖子按meta_query和/或类别过滤,但我有以下问题:第一种类型的帖子有一个名为“类型”的自定义字段,必须用“练习”来填充,帖子必须在一个名为“级别”的类别中(这将在之前设置)。第二类帖子只有名为“类型”的自定义字段,必须用“测试”来填充。 我不知道如何把这两个条件凑在一起。正因为如此,我试图将它分成两个查询,然后合并它,就像这样: 这
我正在创建一个旅游主题,我在其中创建了一些自定义帖子,如城市、地点、目的地和酒店,为了向这些自定义帖子添加更多信息,我创建了几个元框,其中包含一些元键,如地址、租金、酒店房间以及如何到达城市、目的地、,现在我在索引页上有一个搜索表单,可以根据酒店自定义帖子的自定义元键搜索酒店,我必须在函数中创建自己的自定义搜索函数。通过查看创建自定义搜索表单的wordpress教程,我只能有一个GET变量“?s=
本文向大家介绍如何使用MySQL LIKE查询搜索包含%的列值?,包括了如何使用MySQL LIKE查询搜索包含%的列值?的使用技巧和注意事项,需要的朋友参考一下 要使用%搜索列值,语法如下- 让我们首先创建一个表- 使用insert在表中插入一些记录- 使用选择显示表中的所有记录- 这将产生以下输出- 这是使用类似查询的查询来搜索其中包含%的列值的查询- 这将产生以下输出-
问题内容: 当表开始增长时,我担心WHERE子句中IN的性能。有没有人对这种查询有更好的策略?子查询返回的记录数比TradeLine表中的记录数增长得慢得多。TradeLine表本身以每天10个的速度增长。 谢谢你。 编辑:我使用了将子查询从WHERE移到FROM的想法。我对有助于此新查询的所有答案投了赞成票。 问题答案: 子句中的子查询不依赖于外部查询中的任何内容。您可以安全地将其移到子句中;一