2016-04-22 81 views
2

我基本上要做到:機鋒: 「WHERE(等於語句)AND(LIKE語句)」

select * from request where id = 1 and created_at like (today's date); 

但使用侃侃而談。

我想:

$query = m_requests::where(['id' => Auth::User()->id, "created_at", "like", "%".date("Y-m-d")."%"]); 

但返回錯誤:

SQLSTATE[42S22]: Column not found: 1054 Unknown 
column '0' in 'where clause' (SQL: select * from 
from `request` where (`id` = 1 and `0` = created_at 
and `1` = like and `2` = %2016-04-22%)) 

有誰知道我能做到什麼,我試圖做的?

總結: 我希望id等於請求的id,但我希望日期是「LIKE」今天的日期(這是因爲我只對它創建的日期感興趣,而不是它的時間被創建)。

乾杯

+0

你知道'timestamp'列不是字符串?你不能使用'LIKE',這是沒有意義的。如果你希望日期在今天的某個地方,那麼你使用'BETWEEN'運算符,並且給它開始和結束日期('BETWEEN 2016-04-22 00:00:00和2016-04-22 23:59: 59')。 – Mjh

+0

我只是用它作爲例子。甚至沒有檢查是否運行。對不起,我現在編輯它(如果可以的話)。 –

+0

[在Laravel中使用Eloquent ORM來使用LIKE執行數據庫搜索]的可能副本(http://stackoverflow.com/questions/13386774/using-eloquent-orm-in-laravel-to-perform-search-of-database - 使用樣) – Pietro

回答

1

試試這個,它應該工作:

m_requests::where('id', '=', Auth::user()->id) 
      ->where('created_at', 'LIKE', '%'.date("Y-m-d").'%');