如何在Where子句中使用IFNULL

Man*_*mar 4 mysql sql ifnull

IFNULL()我想以这样的方式使用,我可以选择包含 NULL 的记录,或者如果存在值,则选择与特定值匹配的记录。

我的查询是:

SELECT (@v:=2) AS Row, CL.LeaveTypeId, CL.NumberOfLeave
FROM `CompanyLeave` CL
WHERE(IFNULL(CL.EmploymentType,0)=3);
Run Code Online (Sandbox Code Playgroud)

EmploymentType可以包含IntegerNULL

我想选择与指定值匹配的记录,或者,如果没有匹配,则选择包含NULL.

Gor*_*off 5

我将这个问题解释为优先顺序。如果存在 的记录3,请选择该记录。NULL否则,选择,如果存在的话。

如果是这样,这可能会满足您的要求:

SELECT (@v:=2) AS Row, CL.LeaveTypeId, CL.NumberOfLeave
FROM `CompanyLeave` CL
WHERE CL.EmployementType = 3 or CL.EmployementType IS NULL
ORDER BY (CL.EmployementType = 3) DESC
LIMIT 1;
Run Code Online (Sandbox Code Playgroud)

这将返回带有 的行3(如果存在)。否则,它将返回一行NULL,如果存在的话。