当前位置: 首页 > 面试题库 >

“ where 1 = 1”的陈述[重复]

颜德馨
2023-03-14
问题内容

这个问题已经在这里有了答案

8年前关闭。

可能重复:
为什么有人在SQL子句中使用WHERE 1 = 1 AND


我看到有人使用一条语句来查询MySQL数据库中的表,如下所示:

select * from car_table where 1=1 and value="TOYOTA"

但是,这1=1是什么意思呢?


问题答案:

通常是在人们建立SQL语句时。

添加时,and value = "Toyota"您不必担心之前是否存在条件或仅在哪里。优化器应该忽略它

没有魔力,只有实用

示例代码:

commandText = "select * from car_table where 1=1";

if (modelYear <> 0)     commandText += " and year="+modelYear
if (manufacturer <> "") commandText += " and value="+QuotedStr(manufacturer)
if (color <> "")        commandText += " and color="+QuotedStr(color)
if (california)         commandText += " and hasCatalytic=1"

否则,您将必须具有一组复杂的逻辑:

commandText = "select * from car_table"
whereClause = "";
if (modelYear <> 0)
{
   if (whereClause <> "") 
      whereClause = whereClause + " and ";
   commandText += "year="+modelYear;
}
if (manufacturer <> "")
{    
   if (whereClause <> "") 
      whereClause = whereClause + " and ";
   commandText += "value="+QuotedStr(manufacturer)
}
if (color <> "")
{
   if (whereClause <> "") 
      whereClause = whereClause + " and ";
   commandText += "color="+QuotedStr(color)
}
if (california)
{
   if (whereClause <> "") 
      whereClause = whereClause + " and ";
   commandText += "hasCatalytic=1"
}

if (whereClause <> "")
   commandText = commandText + "WHERE "+whereClause;


 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : 10年前关闭。 可能的重复: “ else if”是否比“ switch()case”更快? Java中if / else与switch语句的相对性能差异是什么? 我知道case语句可以用跳转表实现。这是否使它们比if语句更有效? 只是应该避免这种微观优化吗? 问题答案: 我认为主要是尽可能清楚地编写代码。 这样的微优化不应该成为重点。 例如,如果您有这

  • 问题内容: 更有效的方法是- 在sql中使用case语句处理,或在代码中使用if语句处理相同的数据。我问是因为我的同事有一个很大的查询,其中包含许多案例陈述。我建议她通过编写case语句来减轻数据库的压力。我发现它更有效…但是为什么呢? 问题答案: 这里没有一个更基本的问题:这些语句实际上在做什么? 一分钟忘了表演。如果仅用于转换查询的最终输出,并且实际上可以用或在ASP中替换相同的功能,则可能意

  • 问题内容: 我有一个数据库表’ tbl_transaction ‘,其定义如下: 我想生成两列:和。 是否可以仅使用SQL查询有条件地填充列,以使输出显示在正确的列中,具体取决于它是费用项目还是收入项目? 例如: 我正在使用MySQL作为数据库。我正在尝试使用CASE语句来完成此任务。 干杯! 问题答案: 是的,像这样: 正如其他答案所指出的那样,MySQL还具有使用较少冗长语法的功能。我通常尝试

  • 问题内容: 有没有一种方法来定义像新语句,,我自己在Python的?当然,我并不是要覆盖现有的语句,而只是创建自己的语句。 如果是这样,我该怎么办?您能指出我有关该主题的好文档吗? 问题答案: 不可以,您不能在Python程序中添加新语法。更改语言的唯一方法是编辑并重新编译语法文件和支持C代码,以获得新的更改后的解释器,编译器和运行时。

  • 问题内容: 所以我有一个先前的问题,但意识到我发布了错误的违规代码。我在下面标记了令人反感的陈述。 我正在尝试使用该switch语句为每个运算符设置优先级。 也许有人可以指出我正确的方向。 请注意,我正在运行JAVA 7,因此String Switch可以工作。 码 opType.java Operator.java 问题答案: 如果您放置了,则该函数会在执行之前返回,因此将永远无法达到。 相反,

  • 问题内容: 我需要优化使用该子句和字段的PostgreSQL查询的帮助。 我有2张桌子: 包含约3394行 包含约4000000行 在PK和FK和上都有btree索引。 我想执行类似的查询: 该查询在大约7秒钟内检索到大约1.700.000行。 解释分析报告下报告: 未使用时间戳列上的索引。如何优化此查询? 问题答案: 查询将在不到一秒钟的时间内执行。其他6+秒用于服务器和客户端之间的流量。