当前位置: 首页 > 知识库问答 >
问题:

MySQL-SELECT返回模糊的空值

皇甫繁
2023-03-14

请看一下查询:

 SELECT Id
   FROM TableA
  WHERE ColumnA = 'foo'
  ORDER BY Id DESC
  LIMIT 1

基本上,我希望查询获取TableA上的最新条目(列ID是AI),条件是列A='foo'。

查询将顺利运行并返回我需要的内容。如果没有与条件ColumnA='foo'匹配的表项,则结果为空。

说到这里,我添加了一个CASE来返回1。否则,返回Id。下面是新的查询:

 SELECT CASE
            WHEN Id IS NULL
            THEN 1
            ELSE Id
        END
   FROM TableA
  WHERE ColumnA = 'foo'
  ORDER BY Id DESC
  LIMIT 1

使用给定的查询,如果条件为false,则不会有任何结果。它是空白的。甚至不是空的。

问题是,这是为什么?在我看来,结果应该是1。

这里有一个小提琴测试链接:http://sqlfiddle.com/#!9/a8e3af/3

注意:如果我使用MAX而不是将结果限制为1,这将起作用。我只是想知道为什么这个解决方案行不通。

共有2个答案

房育
2023-03-14

你可以试试这个它可能对你有用

SELECT IFNULL(Id,1) as ID
FROM TableA
WHERE ColumnA = 'foo'
ORDER BY Id DESC
LIMIT 1
郑俊美
2023-03-14

ID永远不会为null,因为不会返回任何行,并且不会执行WHEN的CASE。解决方法如下:

SELECT COALESCE(MAX(ID), 1) AS ID
FROM (
  SELECT  ID
  FROM TableA
  WHERE ColumnA = 'G'
  ORDER BY Id DESC
  LIMIT 1
) s

(聚合查询将始终返回一行,如果返回ID,则返回MAX(ID);如果子查询未返回任何行,则返回null)

 类似资料:
  • 问题内容: 是否可以执行仅包含NOT NULL值的select语句? 现在我正在使用这个: 然后,我必须用php循环过滤掉空值。 有没有办法做: ? 现在,当我选择*时,我得到val1,val2,val3,null,val4,val5,null,null等。但是我只想获取结果中不为null的值。没有循环过滤就可以吗? 问题答案: 您应该使用。(比较操作符和两个给定与上表达的任一侧)。 为了完整起见

  • 问题内容: 我想在MySQL数据库表上运行查询,以返回列数据具有空格的所有行。例如: 用户 名安迪·戴维斯 彼得· 乔治夫史密斯 史蒂夫· 鲍勃·保罗 该查询将仅返回“安迪·戴维斯”,“杰夫·史密斯”,“鲍勃·保罗”,而忽略“彼得”和“史蒂夫” 有任何想法吗? 问题答案:

  • 因此,我得到了一个字符串,它是我在一个类上实现的toJson方法的结果,并且在我的测试代码中确认它是我的类的正确Json表示。我的目标是使用Gson将此字符串转换为JsonObject并将其传递给构造函数。然而,我遇到了一个奇怪的问题。 这是我要调用的代码: 我以前在我的项目中的许多地方,在其他类中,都使用过完全相同的代码片段,而且效果很好。我甚至将其中一段功能代码复制到这个测试类中,并进行了尝试

  • 问题内容: 考试分为4个部分,每个部分都有不同数量的问题。我想知道,对于每个学生和每个部分,他们正确回答了多少个问题(响应= 1)。 但是,通过此查询,如果学生在给定的部分中没有正确的问题,则该行将完全不在我的结果集中。我如何确保每位学生总是返回4行,即使一行的“总计”为0也是如此? 这是我的结果集的样子: 感谢您的任何见解! 更新:我试过了 而这完全没有改变结果。还有其他想法吗? 更新2:由于以

  • 问题内容: 在我的创建表脚本中,我已将hasMultipleColors字段定义为BIT: 运行INSERT时,不会对此字段或其他BIT字段引发警告,但是选择行将显示所有BIT值均为空白。 从命令行手动尝试更新这些记录会产生奇怪的效果-显示该记录已匹配并已更改(如果适用),但始终显示为空白。 服务器版本:5.5.24-0ubuntu0.12.04.1(Ubuntu) 有什么想法吗? 问题答案: 您

  • 问题内容: 我正在尝试使用MVC3和JSON进行模型绑定,但是运气不佳…不管我做什么,我似乎都在服务器上获取模型。 方法签名: Javascript已 更新 : 楷模: 该模型在客户端看起来不错: 那为什么我什么也没回到控制器上呢?在过去的两天里,这一直给我带来麻烦,请帮忙!谢谢!! 更新 我已经将我的javascript部分更新为我当前正在使用的部分。现在,此部分将模型与ReportingFil