1. ホーム
  2. マイスル

[解決済み】SQL文字列に'if節'を入れるには?

2022-04-11 11:06:54

質問

そこで、私の MySQL データベースを使用します。

したいのですが。

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

もしそれで行を返さないのであれば、それは if(dr.HasRows == false) を作成します。 UPDATE の中に purchaseOrder データベースに格納されます。

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

この作業をもう少し短くするには、どうしたらいいでしょうか?

どのように解決するのですか?

特定のクエリに対して、あなたは行うことができます。

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

しかし、もっと上位でループしているのではないかと推測されます。 このような値をすべて設定するには、次のようにしてください。

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
                     )