I'm trying to running this query:
SELECT *
FROM
(`default_users`)
LEFT JOIN `default_profiles` ON `default_profiles`.`user_id` = `default_users`.`id`
WHERE
`default_users`.`group_id` = '3'
OR `default_users`.`group_id` = '4'
OR `default_users`.`group_id` = '5'
AND `default_users`.`email` LIKE '%polar%'
OR `default_users`.`username` LIKE '%polar%'
ORDER BY `default_users`.`id` DESC
But get unwanted results and don't know the cause and by unwanted results means webmaster which I think isn like %polar%. Here are some sample data for testing http://pastebin.com/Fyx0TcGY, any advice?
Best Answer
I optimized your query. I use
IN
insteadOR
because your point to the same fielddefault_users.group_id
and I added the brackets after theAND
with(default_users.email LIKE '%polar%' OR default_users.username LIKE '%polar%')
. You can use||
insteadOR
(works the same).