sql >> Database teknologi >  >> RDS >> Mysql

Hvordan sætter jeg en 'if-klausul' i en SQL-streng?

For din specifikke forespørgsel kan du gøre:

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'
                     )

Jeg kan dog gætte på, at du går på et højere niveau. For at indstille alle sådanne værdier, prøv dette:

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
                     )


  1. Fejl:Kan ikke oprette TypedQuery for forespørgsel med mere end én returnering

  2. Sådan får du flere optællinger med en enkelt forespørgsel i MySQL

  3. Hvordan bruger man COUNT i SQL?

  4. Hvordan sletter man duplikerede poster?