我无法弄清楚为什么有时LIKE需要ANY,有时候需要ALL,这让我很疯狂.我觉得我应该能够在两种情况下都使用ANY(我试图在括号中的任何正则表达式之后选择记录).
出于某种原因,第一个LIKE,有任何一个,工作得很好 - 它返回所有记录与狗食,谱系或beneful.
然而,第二个LIKE需要ALL.否则它不会遗漏带有零食,供应或潮湿的记录.但为什么?我觉得这里的任何形式都是合适的形式.
where dsc_item like any ('%DOG CHOW%','%PEDIGREE%','%BENEFUL%')
and dsc_comm not like all ('%TREATS%','%SUPPLIES%', '%WET%')
Run Code Online (Sandbox Code Playgroud)
LIKE ANY转换为OR编辑状态,但LIKE ALL到AND:
where
( dsc_item like '%DOG CHOW%'
OR dsc_item like '%PEDIGREE%','%BENEFUL%'
)
and
( dsc_comm not like '%TREATS%'
AND dsc_comm not like '%SUPPLIES%'
AND dsc_comm not like '%WET%'
)
Run Code Online (Sandbox Code Playgroud)
如果更换AND用OR它就像col <> 1 OR col <> 2是为每个非空行真.