Here is my query:  

```
SELECT * 
FROM client_info
WHERE (cid LIKE 'G%' OR cid LIKE 'H%' OR cid LIKE 'J%')
AND (client_name NOT LIKE 'P4%' OR client_name NOT LIKE 'P5%')

```

The results still contain client names starting with P4 and P5. What is wrong with NOT LIKE clause?