Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie füge ich eine 'if-Klausel' in eine SQL-Zeichenfolge ein?

Für Ihre spezifische Anfrage können Sie Folgendes tun:

UPDATE purchaseOrder
    SET purchaseOrder_status = 'COMPLETED'
    WHERE purchaseOrder_ID = '@purchaseOrder_ID' and
          not exists (SELECT *
                      FROM itemsOrdered WHERE purchaseOrder_ID = '@purchaseOrdered_ID' AND status = 'PENDING'
                     )

Ich könnte jedoch vermuten, dass Sie auf einer höheren Ebene loopen. Um alle diese Werte festzulegen, versuchen Sie Folgendes:

UPDATE purchaseOrder
    SET purchaseOrder_status = 'COMPLETED'
    WHERE not exists (SELECT 1
                      FROM itemsOrdered
                      WHERE itemsOrdered.purchaseOrder_ID = purchaseOrder.purchaseOrdered_ID AND
                            status = 'PENDING'
                      limit 1
                     )