您知道如何在mysql where子句中包含和排除字符串的部分吗?

您知道如何在mysql where子句中包含和排除字符串的部分吗?,mysql,sql,Mysql,Sql,在where子句中使用and/or/not运算符创建以下逻辑时遇到问题 我有一个名为package的字段,它列出了许多不同的包名称,我需要根据以下规则专门包括/排除: 如果包的名称中包含续订、optout或折扣,并且包的名称中不包含premium,则需要将这些名称从数据集中排除。(因此,如果一个包的名称和单词premium中包含renew、optout或折扣,则这些都将包含在数据集中) 此外,需要排除任何与员工或公司有关的信息 上述规则中未列出的任何其他内容都将包含在数据集中 任何帮助都将不胜感

在where子句中使用and/or/not运算符创建以下逻辑时遇到问题

我有一个名为package的字段,它列出了许多不同的包名称,我需要根据以下规则专门包括/排除:

  • 如果包的名称中包含续订、optout或折扣,并且包的名称中不包含premium,则需要将这些名称从数据集中排除。(因此,如果一个包的名称和单词premium中包含renew、optout或折扣,则这些都将包含在数据集中)

  • 此外,需要排除任何与员工或公司有关的信息

  • 上述规则中未列出的任何其他内容都将包含在数据集中


  • 任何帮助都将不胜感激,并添加到我的sql工具带中

    听起来像是:

    SELECT *
    FROM packages
    WHERE name NOT LIKE '%employee%'
      AND name NOT LIKE '%Comp%'
      AND (name NOT LIKE '%renew%' OR name NOT LIKE '%optout%' OR name NOT LIKE '%discount%') OR name LIKE '%premium%')
    

    有两个排除行的条件,因此您需要一个WHERE子句,其中包含以NOT运算符开头的布尔表达式,并结合AND:

    where
      not ((package like '%renew%' or package like '%optout%' or package like '%discount%') and (package not like '%premium%'))
      and 
      not (package like '%employee%' or package like '%comp%')
    

    欢迎来到苏,丽丽!你能提供样本数据吗?另外,如果你能展示你已经尝试过的东西,我们可以从那里开始工作。那么保费是在还是在?