Fermo restando quel che ti ho scritto sopra è normale che tu abbia risultati errati, quando usi delle OR nelle clausole WHERE assieme a delle AND devi anche utilizzare le parentesi per stabilire le priorità tra gli operatori tipo
(questo E questo) O questo
oppure
(questo O questo) E questo)
ovviamente le priorità tra le clausole che imposti devi saperle tu.