Database 如何减少sql语句中的多个and和or条件?
我有一个关于SQL的优化问题 有没有办法减少这种sql语法:Database 如何减少sql语句中的多个and和or条件?,database,sql-optimization,database-optimization,Database,Sql Optimization,Database Optimization,我有一个关于SQL的优化问题 有没有办法减少这种sql语法: Select * from TABLE where COLUMN != 'abc' and COLUMN != 'def' and COLUMN != 'xau' and COLUMN != 'def' and COLUMN != 'eag' and COLUMN != 'dff' and COLUMN != 'www' 第二种是sql语法 Select * from TABLE where COLUMN =
Select * from TABLE
where
COLUMN != 'abc' and
COLUMN != 'def' and
COLUMN != 'xau' and
COLUMN != 'def' and
COLUMN != 'eag' and
COLUMN != 'dff' and
COLUMN != 'www'
第二种是sql语法
Select * from TABLE
where
COLUMN = 'abc' or
COLUMN = 'def' or
COLUMN = 'xau' or
COLUMN = 'def' or
COLUMN = 'eag' or
COLUMN = 'dff' or
COLUMN = 'www'
试试这个:
可以使用以下命令重新写入多个或多个条件:
Select * from TABLE
where
COLUMN not in('abc','def','xau','def','eag','dff','www')
多重和条件,当同一列的值可能超过1时,您能告诉我吗?使用布尔代数:
第一:(!x)和(!y)…和(!z)=!(x或y…或z)
意思是:
Select * from TABLE WHERE COLUMN NOT IN ('abc','def',...)
2nd: (!x)or(!y)..or(!z)==!(x AND Y AND ..Z)
however the intersection of x AND Y ... AND Z is the empty set.
So (!x)or(!y)..or(!z)==!(x AND Y AND ..Z) = !(False) = True.
Meaning:
Select * from TABLE //no WHERE CLAUSE NEEDED
我编辑了我的问题。也许你也可以解决第二条sql语句。添加了更多详细信息。第二条对于任何值都是正确的。对不起,我更改了!=到=