Mysql 选择“使用OR和NAND查询”

Mysql 选择“使用OR和NAND查询”,mysql,sql,operators,logic,Mysql,Sql,Operators,Logic,我正在尝试使用OR和NAND操作设计一个查询,有人能告诉我该查询是否正确: 问题1:这个问题正确吗? 我在我的另一个问题的帮助下创建了这个查询 问题2: 我想使用5查询和AND,而不是NAND,或者它们之间的操作。 我创建了最多3个检查我的问题1我需要帮助创建5个选择查询 我的应用程序是搜索应用程序,用户可以在每个块之间使用i5查询块搜索数据库,我们的操作如下所述。但这些操作是在一个表中执行的 说明: 我希望选择表内的记录,并在表之间使用许多操作。查询中最多有5个操作 查询1、查询2、查询3、查

我正在尝试使用OR和NAND操作设计一个查询,有人能告诉我该查询是否正确:

问题1:这个问题正确吗? 我在我的另一个问题的帮助下创建了这个查询

问题2: 我想使用5查询和AND,而不是NAND,或者它们之间的操作。 我创建了最多3个检查我的问题1我需要帮助创建5个选择查询

我的应用程序是搜索应用程序,用户可以在每个块之间使用i5查询块搜索数据库,我们的操作如下所述。但这些操作是在一个表中执行的

说明:

我希望选择表内的记录,并在表之间使用许多操作。查询中最多有5个操作

查询1、查询2、查询3、查询4、查询5

案例:

(Query 1 AND Query 2 OR  Query 3 NAND Query 4 NOT Query 5)
(Query 1 OR Query 2 OR  Query 3 OR Query 4 OR Query 5)
(Query 1 AND Query 2 AND Query 3 AND Query 4 AND Query 5)
(Query 1 NOT Query 2 NOT Query 3 NOT Query 4 NOT Query 5)
等等。。查询块之间的操作可能会有所不同。。。我将根据这一点编写我的PHP脚本,但我希望以这样一种方式执行逻辑,即我可以加入每个逻辑

现在我需要一个帮助

为什么在同一个表之间使用UNION。您可以使用以下运算符轻松完成此查询:

希望它对您有用。

为什么在同一张表之间使用UNION。您可以使用以下运算符轻松完成此查询:


希望它对您有用。

编写第一个查询的最简单方法:

select *
from country
where country_code='AL' and country_name not in ('Land islands', 'AX')
这是在假设country_id在country表中是唯一的情况下工作的,这是基于命名的合理假设。如果不是这样的话,查询会稍微复杂一些

原始查询需要对表进行多次扫描,使用子查询对NOT IN进行反连接,并进行聚合以删除其具有union而不是union all的重复项

修订版只扫描表,保留与where子句匹配的行


根据您的第一个查询,您可以通过在where子句中使用AND和OR以及IN和NOT IN来执行任何您想要的操作。

编写第一个查询的最简单方法:

select *
from country
where country_code='AL' and country_name not in ('Land islands', 'AX')
这是在假设country_id在country表中是唯一的情况下工作的,这是基于命名的合理假设。如果不是这样的话,查询会稍微复杂一些

原始查询需要对表进行多次扫描,使用子查询对NOT IN进行反连接,并进行聚合以删除其具有union而不是union all的重复项

修订版只扫描表,保留与where子句匹配的行



根据第一个查询,您可以通过在where子句中使用AND和AND,或者在IN和NOT IN中使用AND和NOT IN来执行任何操作。

在第五个查询中,您要选择什么。查询是否正确取决于您试图实现的目标。根据你的问题,还不清楚。您可能正在查找某些记录,或者尝试使用特定的关键字。请检查我更新的问题..@TomPHP。你修改后的第二个问题没有意义。查询返回的结果集使用UNION ALL、INTERSECT和MENUS等操作进行组合。你的问题答案中的条件从句是用AND和OR连接起来的,也许不是。对不起@GordonLinoff,我无法理解。我刚刚编辑了我的Q2以获取更多信息。我的情况是。。还有更多。。但操作将仅为AND或NAND。我对UNION ALL、INTERSECT、MENUS不是很有经验。在你的第五个查询中,你想选择什么。查询是否正确取决于你试图实现什么。根据你的问题,还不清楚。您可能正在查找某些记录,或者尝试使用特定的关键字。请检查我更新的问题..@TomPHP。你修改后的第二个问题没有意义。查询返回的结果集使用UNION ALL、INTERSECT和MENUS等操作进行组合。你的问题答案中的条件从句是用AND和OR连接起来的,也许不是。对不起@GordonLinoff,我无法理解。我刚刚编辑了我的Q2以获取更多信息。我的情况是。。还有更多。。但操作将仅为AND或NAND。我对UNION ALL、INTERSECT和MENUS不是很有经验。如果我在同一列中搜索,那么这个查询是否有效?如果我在同一列中搜索,或者在不同的列中搜索,那么这个查询会起作用吗?那么它是怎么来的呢?你能给我提供一个参考链接,让我了解运算符在我的查询中的用法吗。。你能给我举个例子或想法,在它们之间使用5个查询,我可以使用or,AND,NAND,NOT。如果是OR,那么我可以做,但是这个NAND,NOT操作混淆了..这是NAND的语法不是columnname1和columnname2,也不是NOT的语法。现在应用你的逻辑。亲爱的,在mysql中不是等号运算符。情况如何。。能给我一些语法吗。。使用多个查询我真的不明白为什么你
使用union,尝试通过使用运算符来解决该问题。您能否提供一个参考链接,让我了解运算符在查询中的用法。。你能给我举个例子或想法,在它们之间使用5个查询,我可以使用or,AND,NAND,NOT。如果是OR,那么我可以做,但是这个NAND,NOT操作混淆了..这是NAND的语法不是columnname1和columnname2,也不是NOT的语法。现在应用你的逻辑。亲爱的,在mysql中不是等号运算符。情况如何。。能给我一些语法吗。。使用多个查询我真的不明白为什么要使用union,试着用运算符来解决这个问题。。
select *
from country
where country_code='AL' and country_name not in ('Land islands', 'AX')