gpt4 book ai didi

php - Laravel 5.2 查询 1 个表以获取邮政编码然后获取 ID 并查询另一个

转载 作者:行者123 更新时间:2023-11-29 02:50:47 27 4
gpt4 key购买 nike

我正在尝试学习如何进行查询。搜索字段用于存储在 user_profiles 中的邮政编码(并且 user_profiles 与用户有关系)

所以我有一个返回一个结果的东西(但是有超过 1 个)但是我听说为一个做 2 个查询是不好的

public function index()
{
$queryUsername = Request::get('username');
$queryPostcode = Request::get('postcode');
if ($queryUsername) {
$users = User::where('username', 'LIKE', "%$queryUsername%")->get();
}
if ($queryPostcode) {

$usersInfo = UserProfile::where('postcode', '=', "$queryPostcode")->value('user_id');
$users = User::where('id', '=', "$usersInfo")->get();
}
return view('view', compact('users'));
}

最佳答案

对于引用的问题,更好的方法是使用 join 而不是两个不同的查询

public function index()
{
$queryUsername = Request::get('username');
$queryPostcode = Request::get('postcode');
if ($queryUsername) {
$users = User::where('username', 'LIKE', "%$queryUsername%")->get();
}
if ($queryPostcode) {

$users = Users::rightJoin('user_profiles','users.id', '=', 'user_profiles.user_id')
->where('user_profiles.postcode', '=', "$queryPostcode")
->select(\DB::raw('users.*'))
->get();
}
return view('view', compact('users'));
}

如果您正在寻找用户名的精确匹配使用 LIKE 进行用户名匹配是不好的 $users = User::where('用户名', 'LIKE', "%$queryUsername%")->get();因为对于用户名 chris 和 chrisgeorge 以及 christy 查询 %chris% 将起作用,你不会得到完全匹配所以建议使用 '=' 而不是 like

关于php - Laravel 5.2 查询 1 个表以获取邮政编码然后获取 ID 并查询另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36194161/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com