Nuestro team redactor ha estado mucho tiempo investigando la solución a tu duda, te compartimos la respuestas por eso nuestro deseo es resultarte de mucha ayuda.
Solución:
En MySQL esto se puede lograr de la siguiente manera
SELECT id, length FROM vehicles WHERE id IN ( 117, 148, 126)
+---------------+
| id | length |
+---------------+
| 117 | 25 |
| 126 | 8 |
| 148 | 10 |
+---------------+
SELECT id,vehicle_ids FROM load_plan_configs WHERE load_plan_configs.id =42
+---------------------+
| id | vehicle_ids |
+---------------------+
| 42 | 117, 148, 126 |
+---------------------+
Ahora, para obtener la longitud de los identificadores de vehículos separados por comas, use la siguiente consulta
Output
SELECT length
FROM vehicles, load_plan_configs
WHERE load_plan_configs.id = 42 AND FIND_IN_SET(
vehicles.id, load_plan_configs.vehicle_ids
)
+---------+
| length |
+---------+
| 25 |
| 8 |
| 10 |
+---------+
Para obtener más información, visite http://amitbrothers.blogspot.in/2014/03/mysql-split-comma-separated-list-into.html
He respondido dos preguntas similares en tantos días pero no he obtenido ninguna respuesta, así que supongo que la gente se desanima por el uso del cursor, pero como debería ser un proceso único, personalmente no creo que eso importe.
Como dijiste, MySQL aún no es compatible con los tipos de devolución de tablas, por lo que tienes pocas opciones además de hacer un bucle en la tabla y analizar el material csv string y genere las filas apropiadas para la pieza y el material.
Las siguientes publicaciones pueden resultar de interés:
dividir palabras clave para publicar php mysql
Procedimiento de MySQL para cargar datos de la tabla de ensayo a otras tablas. Necesidad de dividir el campo multivalor en el proceso
Rgds
Reseñas y valoraciones del artículo
Recuerda difundir esta crónica si te fue de ayuda.