sql >> Databáze >  >> RDS >> Mysql

Jak vložím klauzuli „if“ do řetězce SQL?

Pro váš konkrétní dotaz můžete:

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

Mohl bych však hádat, že smyčkujete na vyšší úrovni. Chcete-li nastavit všechny tyto hodnoty, zkuste toto:

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. Připojte se ke čtyřem stolům zahrnujícím LEFT JOIN bez duplikátů

  2. Kopírování databáze PostgreSQL na jiný server

  3. Více sloupců v MATCH PROTI

  4. Smazat všechny záznamy kromě nejnovějšího?