MySQL UPDATE仅当其他表中的字段满足条件时

M M*_*ler 0 mysql sql conditional if-statement

我在尝试实现这一目标时遇到了一些麻烦.以下是我需要做的事情的要点:

UPDATE links SET
 link = '$link', rid = $rid, order = $order
WHERE lid = $lid
IF (SELECT COUNT(*) FROM resources WHERE rid = $rid AND (sid = $sid OR sid IS NULL) AND types IS NULL) == 1;
Run Code Online (Sandbox Code Playgroud)

所以基本上,当且仅当资源表中的资源与站点(sid)相关联或者没有与任何特定站点相关联且类型为null时,我想运行UPDATE.

我想我可以运行PHP条件,但如果我可以用一个查询执行此操作会更好.可能吗?

Thansk提前这么多!

jue*_*n d 5

UPDATE links
SET link = '$link', rid = $rid, order = $order
WHERE lid = $lid
and (SELECT COUNT(*) 
    FROM resources 
    WHERE rid = $rid 
    AND (sid = $sid OR sid IS NULL) 
    AND types IS NULL) = 1;
Run Code Online (Sandbox Code Playgroud)