No comprendo qué queres hacer pero debe funcionar si sabes como usar el comodín %
En ese SELECT si pones LIKE '512%', va a devolverte TODOS los nombres que empicen con 512 y cualquier cosa al final. Si lo pones '%512', va a devolverte TODO lo que tenga 512 al final.
¿Qué es lo que no te respeta o qué necesitas EXACTAMENTE hacer???
Ahora, para NO confundirte, convinando OR y AND, te recomiendo encierren entre paréntesis redondos la sentencia porque puede que ahí esté tu problema. ¿Sabes la prioridad de AND y OR?
Por te puede arrojar diferentes resultados con la misma sentencia si NO sabes diferenciarla.
Es diferente esto:
Código PHP:
SELECT * FROM `productos`
WHERE (`clasif` = 'Disco Duro' OR `clasif` = 'Memorias RAM')
AND `nombre` LIKE '512%'
A esto:
Código PHP:
SELECT * FROM `productos`
WHERE `clasif` = 'Disco Duro'
OR (`clasif` = 'Memorias RAM' AND `nombre` LIKE '512%')
Los paréntesis indican que primero se ejecute lo que está encerrado entre ellos y luego continúe con las otras sentencias fuera de ellos.
Sin los paréntesis, ¿cómo sabes que la ejecución del SELECT se está haciendo a como lo necesitas?