我刚刚注意到我的 where status =Blocked
没有被考虑。
查询仍返回阻止和事件状态。
$contacts = DB::table('contacts')
->where('uid_by', $me)
->orWhere('uid_to', $me)
->where('status', 'blocked')
->select(
DB::raw("IF(uid_by = $me, uid_to, uid_by) AS user_id")
)
->get();
查询可能出现什么问题?
我尝试记录正在执行的查询:
{"query":"select IF(uid_by = 3, uid_to, uid_by) AS user_id from `contacts` where `uid_by` = ? or `uid_to` = ? and `status` = ?","bindings":[3,3,"blocked"],"time":0}
使用:
$queries = DB::getQueryLog();
return $last_query = end($queries);
最佳答案
尝试切换 where 语句,如下所示:
$contacts = DB::table('contacts')
->where('uid_by', $me)
->where('status', 'blocked')
->orWhere('uid_to', $me)
->select(
DB::raw("IF(uid_by = $me, uid_to, uid_by) AS user_id")
)->get();
发生的情况是,没有评估 OR
关键字后面的内容,因此,显示所有被阻止和事件的...
关于php - mysql查询返回所有数据,即使where不满足LARAVEL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20803227/