Vamos por partes.
Dices que quieres hacer esto:
Cita: una consulta necesito que se muestren las empresas que pertenecen a esa categoria, subcategoría y producto
o
Cita: que se muestren las empresas que contienen en el campo mas_servicios el id de la tabla directorio_producto,
Por empezar: MySQL no tiene consultas condicionales. Lo más que puedes hacer es poner dos condiciones distintas usando OR, de modo que te devolverá los registros que cumplan ambas condiciones. Pero también puede devolverte registros repetidos.
No es una buena forma de hacer consultas. Es mejor establecer dos condiciones distintas tales que estés seguro de que no se solapen datos.
Por otro lado dices esto:
Cita: en el cual se guardan varios id en formato ,id,
No queda claro si ese campo tiene un ID por registro, o en el mismo registro tienes una lista de valores metido en el mismo campo.
En el primer caso, no hay problema. En el segundo, es una metida de pata astronómica, porque eso no se hace de ese modo.
Finalmente, comentas:
Cita: pero al hacer un LIKE ',directorio_producto.id,' no funciona el asunto y supongo que es porque esto no se hace así
Exactamente. Eso no se hace así.
Comencemos aclarando que LIKE se usa para buscar cadenas dentro de cadenas. No tiene utilidad funcional si vas a comparar un Valor "A" contra el contenido de un campo, porque para que te devuelva el registro, ese campo debe contener... "A". Con lo que esto:
es igual a poner
Con la sola diferencia que LIKE resulta menos eficiente en ese caso (tiene otro algoritmo).
Pero además de este detalle lo estás escribiendo completamente mal.
Código MySQL:
Ver originaldirectorio_empresas.mas_servicios
LIKE ',directorio_producto.id,'
compararía
directorio_empresas.mas_servicios contra una cadena de texto que dice
",directorio_producto.id,", no contra el contenido de su campo.
De todos modos, si
directorio_producto.id contiene datos numéricos no se usa el LIKE. Ese es para cadenas, no para números, y los resultados pueden ser erráticos.
Aclárame una cosa:
¿Qué contiene directorio_producto.id? ¿Números o colecciones de números como cadena de texto?
Según tu respuesta podremos armar algo mejor.