sql >> Databasteknik >  >> RDS >> Mysql

Hur lägger jag en 'if-sats' i en SQL-sträng?

För din specifika fråga kan du göra:

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

Däremot kan jag gissa att du loopar på en högre nivå. För att ställa in alla sådana värden, prova detta:

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. Hur SPACE() fungerar i MariaDB

  2. Beräkna tidsskillnaden mellan två tidsstämplar i mysql

  3. mysql ordning efter serialiserade data?

  4. Hur sorterar man en MYSQL-tabell på ett permanent sätt?