首页 > 解决方案 > 你知道如何在 mysql where 子句中包含和排除部分字符串吗?

问题描述

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

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

  1. 如果一个包的名称中包含续订、选择退出或折扣,并且名称中也不包含溢价,则需要从数据集中排除这些名称。(因此,如果一个包的名称和溢价一词中有续订、选择退出或折扣,这些都包含在数据集中)

  2. 此外,需要排除任何与员工或 Comp 相关的内容。

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

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

标签: mysqlsql

解决方案


听起来像:

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%')

推荐阅读