AND IF 在 WHERE CLAUSE 中使用变量
正在 MySQL 中创建一个存储过程。调用过程时,传递 OfficeId 和 ClientId (Insurer)。下面的代码仅在 insurerId 为 0 时返回结果。它不会返回任何其他 InsurerId 的任何结果。任何指针都将被应用
FROM
Office O
INNER JOIN Claim C
ON C.OfficeId = O.Id
INNER JOIN ClaimItems CI
ON CI.ClaimId = C.Id
INNER JOIN Client I
ON I.Id = C.InsurerId
WHERE
O.Id = @officeid
AND IF(@insurerid = 0, '1=1', CONCAT('I.Id = ', @insurerid))