mysql 中的语法可以缩小

问题描述 投票:0回答:1

这是我的工作查询

我有一个表,其中有 2 个唯一列 ain(不为空)+ schemacode(可以为空)

案例1:

SET @ain = '000002304000134'; 
SET @sc = NULL; 
SELECT * FROM account
WHERE (ain=@ain AND Schemecode=@sc AND @sc IS NOT NULL) OR (ain=@ain AND Schemecode IS NULL AND @sc IS NULL)

案例2:

SET @ain = '000002304000134'; 
SET @sc = '00000'; 
SELECT * FROM account
WHERE (ain=@ain AND Schemecode=@sc AND @sc IS NOT NULL) OR (ain=@ain AND Schemecode IS NULL AND @sc IS NULL)

案例3:

SET @ain = '000002304000134'; 
SET @sc = '00001';
SELECT * FROM account
WHERE (ain=@ain AND Schemecode=@sc AND @sc IS NOT NULL) OR (ain=@ain AND Schemecode IS NULL AND @sc IS NULL)

对于所有 3 个场景工作查询。以上语法看起来很长。语法是否可以缩小,请告诉我我想在 ef core (lambda ) 以及普通 sql 中使用

mysql entity-framework-core
1个回答
1
投票

您想使用空安全比较运算符

<=>
:

SELECT * FROM account
WHERE ain=@ain AND Schemecode<=>@sc
© www.soinside.com 2019 - 2024. All rights reserved.