Skip to content
Advertisement

Trying to exclude certain users

New to SQL but I’m trying to find titles wherein the words “blue” and “black” are present. However, they cannot be from users who have ids of 1 and 5. This is what I did:

SELECT title, id_card
FROM site
WHERE (title LIKE "%blue%" OR title LIKE "%black%")
  AND (id_card != 1 OR id_card != 5)
ORDER BY id_card ASC;

However, when I add that id 1 and id 5 shouldn’t be in the query, it shows me something like this:

Blog Title User
The blue sky was so nice today 1
Black is my favorite color 2
I’m feeling blue 2
She was dressed in black 3

However, when I erase id_card != 5 from the code, it works perfectly fine.

Blog Title User
Black is my favorite color 2
I’m feeling blue 2
She was dressed in black 3

I’m just wondering where I went wrong and how I can fix this issue. Thank you in advance!

Advertisement

Answer

You are on the right track. But use not in to get the logic right:

SELECT title, id_card
FROM site
WHERE (title LIKE '%blue%' OR title LIKE '%black%') AND
      id_card NOT IN (1, 5)
ORDER BY id ASC;

You could also fix your logic by using AND.

User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement