![](/img/trans.png)
[英]Laravel: How Can I Convert This Sql Statement to Eloquent or Query Builder
[英]Laravel 4 Query Builder SQL Statement
美好的一天,我有這個SQL語句,並且在如何在Laravel查詢中轉換此語句時遇到了困難。
我在http://laravel.com/docs/4.2/queries中閱讀了文檔,我很困惑。 任何幫助都可以。
SELECT count(*) FROM `transactions` WHERE `borrower_id` = 2
AND `book_id` = 2 AND (
(
`reservedDate` IS NOT NULL
and `borrowedDate` IS NULL
)
OR (
`borrowedDate` IS NOT NULL
AND `returnedDate` IS NULL
)
)
因此,我嘗試通過閱讀Laravel的文檔來構建此查詢。 尚未進行測試,但希望它能給您正確的方向。
也許下次,您應該顯示自己的查詢(如果不正確,可以)。 從那里開始更容易。
$super_query = DB::table('transactions')->where('borrower_id' , '=' , 2)->where('book_id', '=' , 2)->where( function ( $query ) {
$query->where(function ($query1) {
$query1->whereNotNull('reservedDate')->whereNull('borrowedDate')
)->orWhere(function ($query2) {
$query2->whereNotNUll('borrowedDate')->whereNull('returnedDate')
})
})->count();
DB::table('transactions')
->Where('borrower_id', '=', 2)
->Where('book_id', '=', 2)
->where(function($query)
{
$query->where(function($query1) {
$query1->whereNotNull('reservedDate')
->whereNull('borrowedDate');
})
->orWhere(function($query2) {
$query2->whereNotNull('borrowedDate')
->whereNull('returnedDate');
});
})->count();
試試這個..這將導致
select count(*) from `transactions` where `borrower_id` = 2 and `book_id` = 2 and ((`reservedDate` is not null and `borrowedDate` is null) or (`borrowedDate` is not null and `returnedDate` is null))
嘗試這個:
雄辯
Transactions::where('borrower_id', '=', 2)
->where('book_id', '=', 2)
->where(function($query)
{
$query->whereNotNull('reservedDate')
->whereNull('borrowedDate');
})
->orWhere(function($query)
{
$query->whereNotNull('borrowedDate')
->whereNull('returnedDate');
})
->count();
book::count()->where('borrower_id','=','2','book_id','=',2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.