【发布时间】:2020-03-10 13:44:32
【问题描述】:
这是在 MY SQL 中运行良好的查询:
SELECT users.name FROM ((event_user INNER JOIN events ON event_user.event_id = events.id) INNER JOIN users ON event_user.user_id = users.id) where events.name like '%FEB%' or users.name like '%FEB%' or users.email like '%FEB%' or users.phone 比如'%FEB%'
这是我写的,当然行不通:
$data['search_data'] = EventUser::select('users.*')
->join
('users', 'event_user.user_id', '=', 'users.id')
->join
('events', 'event_user.event_id', '=', 'events.id')
->where
('events.name','like', "'$search'")
->orWhere
("users.id",'like', "'$search'")
->orWhere
("users.name",'like', "'$search'")
->orWhere
("users.phone",'like', "'$search'")
->orWhere
("users.email",'like', "'$search'")
->orWhere
("users.password",'like', "'$search'")
->orWhere
("users.work_location",'like', "'$search'")
->orWhere
("users.profession",'like', "'$search'")
->orWhere
("users.designation",'like', "'$search'")
->orWhere
("users.committee",'like', "'$search'")
->orWhere
("users.role",'like', "'$search'")
->orWhere
("users.bio",'like', "'$search'")
->paginate(10);
好的,在大家的帮助下。 我有解决办法。谢谢大家。
$data['search_data'] = EventUser::select('users.*', 'events.name as e_name')
->join('users', 'event_user.user_id', '=', 'users.id')
->join('events', 'event_user.event_id', '=', 'events.id')
->where('events.name', 'like', '%'.$search.'%')
->orWhere('users.id', 'like', '%'.$search.'%')
->orWhere('users.name', 'like', '%'.$search.'%')
->orWhere('users.phone', 'like', '%'.$search.'%')
->orWhere('users.email', 'like', '%'.$search.'%')
->orWhere('users.password', 'like', '%'.$search.'%')
->orWhere('users.work_location', 'like', '%'.$search.'%')
->orWhere('users.profession', 'like', '%'.$search.'%')
->orWhere('users.designation', 'like', '%'.$search.'%')
->orWhere('users.committee', 'like', '%'.$search.'%')
->orWhere('users.role', 'like', '%'.$search.'%')
->orWhere('users.bio', 'like', '%'.$search.'%')
->distinct()
->paginate(10);
但这仍然返回重复的结果。
【问题讨论】:
-
不要双引号你的变量。它会将这些引号添加到您正在搜索的字符串中。
-
什么不起作用?您是否收到错误消息或只是不是您预期的输出?
like未正确使用,但在您提到的答案中,在指向like的正确语法后仍然无法正常工作,因此尚不清楚出了什么问题。 -
它没有返回任何结果。因为 SQL 查询在 MY SQL 中返回结果
标签: php sql laravel laravel-5 eloquent