gpt4 book ai didi

sql - 什么是sql server中的 'where 1=1'和 'where null=null'

转载 作者:行者123 更新时间:2023-12-04 23:43:03 27 4
gpt4 key购买 nike

我有一个名为 Students 的列的表。

我对 select 行使用以下三个查询。

 1. select * from Students
2. select * from Students where 1=1
3. select * from Students where null=null

当我首先执行时,这将返回所有行。

当我执行第二个时,这也返回所有行。

但是当我执行第三个时,这不会返回任何行。

我有两个问题

  1. What is 1=1 and null=null and why are we using these?
  2. What is difference between first query and second query?

最佳答案

关于使用这个“为什么”的问题部分:
由于 1=1 总是计算为 true 并且 true 是逻辑 AND 操作的中性元素,因此它通常用于动态构建的查询。

在某些条件下使用多个 AND 操作添加或不添加到查询的动态构建查询的问题是,您必须跟踪它是添加或不添加 first 条件。 (即 SELECT * FROM mytable WHERE AND bla = 'blub' 无效;我们必须使用添加到查询的第一个条件来抑制 AND)

当我们将查询基础更改为 SELECT * from mytable WHERE 1=1 时,所有这些都可以避免。现在我们可以动态添加我们的 AND 条件,而无需考虑它是否是添加的第一个条件。 (即 SELECT * FROM mytable WHERE 1=1 AND bla = 'blub' 有效)

关于sql - 什么是sql server中的 'where 1=1'和 'where null=null',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28249972/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com