在2个SQL列上使用'like'组合

时间:2018-02-02 15:25:31

标签: laravel

我目前在我的表格中有两列名称为 uploadDate uploadTime 。我有这样一个条款:

->orWhere('uploadDate', 'like', '%' . $request->search . '%')
->orWhere('uploadTime', 'like', '%' . $request->search . '%');

问题是如果 $ request-> search = yyyy-mm-dd,hh:mm:ss ,我的网络应用无法获得任何结果,因为uploadDate和uploadTime是分开的DB上的列。有没有人有办法创建一个或者语句来整合 uploadDate uploadTime

,我知道只需在数据库中创建一个合并两列的单个列就可以轻松实现这一点,但我只是想在这一点上寻找更简单的方法,哈哈哈。

1 个答案:

答案 0 :(得分:1)

如果您想要按照确切的日期和时间查找记录,则不应在此使用likeorWhere()

->where('uploadDate', str_before($request->search, ','))
->where('uploadTime', str_after($request->search, ', '))

如果您在查询中有其他where()orWhere()条款,则可以执行以下操作:

->where([
    'uploadDate', '=', str_before($request->search, ','),
    'uploadTime', '=', str_after($request->search, ', ')
])