使用复杂的 AND OR 将 SQL 转换为 Laravel 查询生成器
Convert SQL to Laravel Query Builder with complex AND OR
我有这样的查询-
SELECT * FROM subscribers_lists
WHERE Country='Germany'
AND (City='Berlin' OR name LIKE '%Mün%');
我想将其转换为 Laravel 查询生成器的查询。所以,我所做的是 -
DB::table('Customers')
->where('subscribers_lists.Country', '=', $user_country)
->or_where('subscribers_lists.City', '=', $user_city)
->or_where('subscribers_lists.name', 'like', '%' . $searchParameter . '%');
但它并不完美。有什么建议吗?
感谢您的帮助。
您可以使用闭包来创建复杂的部分。
DB::table('subscribers_lists')
->where('subscribers_lists.Country', '=', $user_country)
->where(function($query) use ($user_city, $searchParameter) {
$query->where('subscribers_lists.City', '=', $user_city)
->orWhere('subscribers_lists.name', 'like', '%' . $searchParameter . '%');
});
您可以在文档中阅读有关高级查询的更多信息here
我有这样的查询-
SELECT * FROM subscribers_lists
WHERE Country='Germany'
AND (City='Berlin' OR name LIKE '%Mün%');
我想将其转换为 Laravel 查询生成器的查询。所以,我所做的是 -
DB::table('Customers')
->where('subscribers_lists.Country', '=', $user_country)
->or_where('subscribers_lists.City', '=', $user_city)
->or_where('subscribers_lists.name', 'like', '%' . $searchParameter . '%');
但它并不完美。有什么建议吗?
感谢您的帮助。
您可以使用闭包来创建复杂的部分。
DB::table('subscribers_lists')
->where('subscribers_lists.Country', '=', $user_country)
->where(function($query) use ($user_city, $searchParameter) {
$query->where('subscribers_lists.City', '=', $user_city)
->orWhere('subscribers_lists.name', 'like', '%' . $searchParameter . '%');
});
您可以在文档中阅读有关高级查询的更多信息here