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

即使没有结果也返回一个值

邓嘉致
2023-03-14
问题内容

我有这种简单的查询,它返回给定id的非空整数字段:

SELECT field1 FROM table WHERE id = 123 LIMIT 1;

问题是,如果找不到ID,则结果集为空。我需要查询始终返回一个值,即使没有结果也是如此。

我有这个东西工作,但我不喜欢它,因为它运行相同子查询的2倍:

SELECT IF(EXISTS(SELECT 1 FROM table WHERE id = 123) = 1, (SELECT field1 FROM table WHERE id = 123 LIMIT 1), 0);

如果该行存在,则返回field1,否则返回0。有什么改进的方法吗?

谢谢!

编辑以下一些评论和答案 :是的,它必须在 单个查询语句中, 并且我不能使用count技巧,因为 我只需要返回1值
(仅供参考,我使用Java / Spring方法SimpleJdbcTemplate.queryForLong()运行查询)。


问题答案:

如果结果为null,MySQL具有返回值的功能。您可以在整个查询中使用它:

SELECT IFNULL( (SELECT field1 FROM table WHERE id = 123 LIMIT 1) ,'not found');


 类似资料:
  • 问题内容: 我正在对查询进行形式化,以按日期排序提供过去一年中提交的报告数量。我用php获取当前年份和月份: 并执行以下查询:SQL: 而且由于去年只提交了1个结果,因此我只得到了1个结果… 但是我希望结果集显示出来: 那可能吗? 问题答案: 您应该将此表与1..12表保持联接。像这样的东西: SQL Fiddle演示

  • 假设我收集了以下文档: 所有文档都将始终有“水果”字段 某些文档可能没有“attributes”数组 对于属性数组中包含元素的文档,它可以是1到20个元素 我需要根据属性返回这个。数量介于4和8之间 > 即使属性字段缺失或数量标准不匹配,也始终显示id和水果 在属性数组中最多只显示2个符合搜索条件的元素,按数量降序排序 {_id:1,水果:苹果,属性:[{颜色:红色,大小:小,数量:5}]}, {

  • http://prntscr.com/9jhrwa“GUI看起来怎么样” 公共类Okno1扩展javax.swing.jFrame{ 在这里,我显示了按下这个按钮时的jScrollPanel,我还显示了如果我想在显示的JList中获得选定元素的索引时必须按下的按钮 在这里,我按下一个按钮,它应该为我提供所选项的索引,但它一直给我-1,无论JList上的项是否被选中都无关紧要

  • 问题内容: 当SQL查询的结果为零行>时,将返回什么?如果它返回一个对象,我们将如何检测到SQL查询未返回任何内容。 假定SQL查询为语句。 问题答案: 您是否检查了ResultSet的下一个方法。最初,ResultSet的光标指向第一行之前,对next()的第一次调用返回false表示ResultSet中没有数据。

  • 我正在尝试从PDF文件中抓取一些数据。我正在使用class.pdf2text.php(在这里找到)(通过一些内部调整),所有工作都很好,但是我有这种非常奇怪的情况。如果我像这样运行代码: 未返回任何内容< code>$bill_date为空。如果我像这样运行代码: 然后打印的所有内容, 是一个包含preg_match结果的数组。正如你可以想象的那样,我无意输出整个内容,我只需要得到preg_mat