Entonces, esto es lo que quiero hacer en mi base de datos MySQL .
Me gustaría hacer:
SELECT *
FROM itemsOrdered
WHERE purchaseOrder_ID = '@purchaseOrdered_ID'
AND status = 'PENDING'
Si eso no devuelve ninguna fila, lo cual es posible a través de if(dr.HasRows == false)
, ahora crearía un UPDATE
en la purchaseOrder
base de datos:
UPDATE purchaseOrder
SET purchaseOrder_status = 'COMPLETED'
WHERE purchaseOrder_ID = '@purchaseOrder_ID'
¿Cómo podría hacer este proceso un poco más corto?
itemsOrdered_ID
y tienepurchaseOrder_ID
valores recurrentespurchaseorder
base de datos, por otro lado, tiene la identificación únicapurchaseOrder_ID
Respuestas:
Para su consulta específica, puede hacer:
Sin embargo, podría suponer que estás haciendo un bucle en un nivel superior. Para establecer todos estos valores, intente esto:
fuente
Puede usar la
UPDATE
sintaxis de varias tablas para efectuar unANTI-JOIN
entrepurchaseOrder
yitemsOrdered
:fuente
Como MySQL no es compatible
if exists(*Your condition*) (*Write your query*)
, puede lograr una 'cláusula if' escribiendo así:fuente
También puede usar la siguiente consulta para verificar si el registro existe y luego actualizarlo:
fuente
fuente
SQL
fuente
después de que sql server 2008 proporcione
Merge
para insertar, actualizar y eliminar la operación basada en una declaración de coincidencia única, también eso le permite unirse. El ejemplo de ejemplo a continuación puede ser de ayuda.De esta manera, puede insertar, actualizar y eliminar en una sola declaración.
y para obtener más información, puede consultar documentos oficiales en https://technet.microsoft.com/en-us/library/bb522522(v=sql.105).aspx
fuente
Si la tabla contiene millones de registros, la siguiente consulta funcionará rápidamente.
fuente
Puede declarar una variable que contenga el número de resultados devueltos en la consulta de selección. Luego puede ejecutar la declaración de actualización si esta variable es mayor que 0
fuente