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 UPDATEen la purchaseOrderbase 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_IDy tienepurchaseOrder_IDvalores recurrentespurchaseorderbase de datos, por otro lado, tiene la identificación únicapurchaseOrder_IDRespuestas:
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
UPDATEsintaxis de varias tablas para efectuar unANTI-JOINentrepurchaseOrderyitemsOrdered: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
SQLfuente
después de que sql server 2008 proporcione
Mergepara 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