Tengo una base de datos donde llegan piezas con codigos como "38DD-156871-1Z obviamente a cada registro le asigno un ID diferente
ahora el codigo del medio es el que realmente identifica a la guia 156871 el inicio y el final puede variar dependiendo de las cajas tamanos y eso
Ingreso eso codigos en una tabla de mi base de datos mediante un modulo en php donde con una pistola lectora de codigo de barras a medida que va escaneando va generando nuevos inputs y al procesar me ingresa todos los paquetes a la tabla
Ahora por ejemplo si el numero del medio que es el que identifica a la guia se repite quiere decir que esa guia tiene 2, 3, 4, 5 o .....n cantidad de piezas pero sigue siendo la misma guia el mismo cliente,
Ahora estoy haciendo una consulta donde me cuenta la cantidad de piezas que tiene esa guia osea donde se repite el numero del medio en este caso 156871 por ejemplo esto funciona perfecto:
SELECT COUNT( * ) FROM guias_inventario WHERE nro_guia LIKE '%156871%'
si son 8 registros donde se repite ese numero al ejecutar esa consulta me devuelve el nro 8
Ahora quiero hacerle un UPDATE a cada registro donde el campo PIEZAS = 8 en este caso
UPDATE `guias_inventario`
SET `piezas` = '8'
WHERE `nro_guia` LIKE '%156871%'
esto tambien trabaja perfecto me hace UPDATE a todos lo registros donde cambiado el campo PIEZAS en 8 donde el campo NRO_GUIA contiene estos numeros 156871
Lo que quiero hacer es hacerlo automatico son el subquery inicial
SELECT COUNT( * ) FROM guias_inventario WHERE nro_guia LIKE '%156871%' este subquery me devuelve 8
UPDATE `guias_inventario`
SET `piezas` = '8' <----- // Quiero incluir aqui el subquery //
WHERE `nro_guia` LIKE '%156871%'
Quedaria algo asi:
UPDATE `guias_inventario`
SET `piezas` = (SELECT COUNT( * ) FROM guias_inventario WHERE nro_guia LIKE '%156871%')
WHERE `nro_guia` LIKE '%156871%'
pero si lo coloco asi me arroja este error
MySQL ha dicho:
#1093 - You can't specify target table 'guias_inventario' for update in FROM clause
Alguien sabe si es posible hacer esto en MySQL??