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.