mysql的否定就像没有回到什么预期,为什么?

kak*_*lon 3 mysql sql sql-like

我有一个mysql表,有2796个条目.我想在notes字段中的某处选择不包含单词SUPPR的条目.

如果我做以下事情

SELECT * FROM `catalogues` WHERE notes LIKE "%SUPPR%"
Run Code Online (Sandbox Code Playgroud)

它返回266行.但如果我写出我认为的补充

SELECT * FROM `catalogues` WHERE notes not LIKE "%SUPPR%"
Run Code Online (Sandbox Code Playgroud)

当我期待2530(2796-266)时,它会返回762行.

我该怎么写第二个请求才能得到我需要的东西?

ber*_*nie 7

使用时隐式排除空值NOT LIKE.
你单独处理:

SELECT * 
  FROM `catalogues` 
 WHERE (notes NOT LIKE "%SUPPR%" 
        OR notes IS NULL);
Run Code Online (Sandbox Code Playgroud)

也许这仅仅是出于说明目的而使用它...
DBA和性能增益建议不要使用它SELECT *.