2

次のクエリがあります。

UPDATE a, b, c SET a.deleted=1, b.deleted=1, c.deleted=1 
WHERE a.id='$aID' AND a.com='$comID' AND b.areID=a.id AND c.areID=a.id

問題は、c.areID が存在しない場合があり、b.areID でも同じになることがあるため、MySQL に存在する場合、文の寿命やそのようなものはありますか?

4

2 に答える 2

1

「存在しない」とは、NULLになる可能性があることを意味すると思います。

UPDATE a, b, c SET a.deleted=1, b.deleted=1, c.deleted=1 
WHERE a.com='$comID' AND a.id='$aID' AND (b.areID=a.id OR b.areID IS NULL) 
AND (c.areID=a.id or c.areID IS NULL)

NULL 値で更新したくない場合は、areID が NULL の場合は条件に一致しないため、クエリは問題ありません。

于 2013-04-04T05:02:22.293 に答える