SORU
21 Aralık 2012, Cuma


Nasıl bir 'yan' SQL dizesinde?

Burada benim yapmak istediğim şey şuMySQLVeritabanı kullanarakC#.NET.

Etmek istiyorum:

SELECT * 
    FROM itemsOrdered
    WHERE purchaseOrder_ID = '@purchaseOrdered_ID'
        AND status = 'PENDING'

Eğer o if(dr.HasRows == false) sayesinde mümkün olan herhangi bir satır, geri verseydi şimdi değil UPDATE purchaseOrder veritabanı: bir oluşturmak istiyorum

UPDATE purchaseOrder 
    SET purchaseOrder_status = 'COMPLETED'
    WHERE purchaseOrder_ID = '@purchaseOrder_ID'

Bu işlem biraz daha kısa yapmak mümkün olacak nasıl herhangi bir fikir?

CEVAP
21 Aralık 2012, Cuma


Belirli bir sorgu için, bunu yapabilirsiniz:

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

Ancak, daha yüksek bir düzeyde döngü olduğunu tahmin edebilirim. Tüm bu değerleri ayarlamak için, bu deneyin:

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
                     )

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bart Baker

    Bart Baker

    1 Aralık 2006
  • Disney Pets and Animals

    Disney Pets

    29 ŞUBAT 2012
  • xCraash

    xCraash

    6 Temmuz 2012