mysql数据库查询没有数据的时候会返回啥,是false,还是' ',还是null,还是啥啊?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql数据库查询没有数据的时候会返回啥,是false,还是' ',还是null,还是啥啊?相关的知识,希望对你有一定的参考价值。

参考技术A 这里就涉及到
有一条记录但是记录是空记录
和没有一条记录
的问题了。
首先弄清楚no data found异常是在找不到一条记录的时候报的异常,但是在找到一条空记录的时候是不会报这个异常的。
用集合函数之所以不会报错原因是:
用集合函数的时候,当参数没有赋值时,函数会默认赋一个空值来进行计算,返回的结果也是一个空值(不是没有值)。
而to_char、substr这些函数就不会当参数没有赋值时默认赋空值,也就没有结果返回。
所以区别就是一个有记录返回,但是个空记录,而一个是没有记录返回。
其实你要看清楚空记录和没有记录的区别可以执行如下的程序看返回结果的差别就懂了。
OPEN OUTCURSOR FOR
select MAX(t.Time) from dept t where t.id>'10';
比较
OPEN OUTCURSOR FOR
select t.Time from dept t where t.id>'10';
再比较
OPEN OUTCURSOR FOR
select to_char(t.Time,'yyyy-mm-dd') from dept t where t.id>'10';
参考技术B null本回答被提问者采纳

在使用clickhouse-jdbc的时候,查询数据的时候偶尔会遇到这个错误,不知道是啥原因?

【中文标题】在使用clickhouse-jdbc的时候,查询数据的时候偶尔会遇到这个错误,不知道是啥原因?【英文标题】:When using clickhouse-jdbc, I occasionally encounter this error when querying data, and I wonder what the reason is?在使用clickhouse-jdbc的时候,查询数据的时候偶尔会遇到这个错误,不知道是什么原因? 【发布时间】:2020-12-27 12:42:48 【问题描述】:
ru.yandex.clickhouse.except.ClickHouseUnknownException: ClickHouse exception, code: 1002, host: xxx.xxx.xxx.xxx, port: 8123; xxx.xxx.xxx.xxx:8123 failed to respond
    at ru.yandex.clickhouse.except.ClickHouseExceptionSpecifier.getException(ClickHouseExceptionSpecifier.java:91)
    at ru.yandex.clickhouse.except.ClickHouseExceptionSpecifier.specify(ClickHouseExceptionSpecifier.java:55)
    at ru.yandex.clickhouse.except.ClickHouseExceptionSpecifier.specify(ClickHouseExceptionSpecifier.java:24)
    at ru.yandex.clickhouse.ClickHouseStatementImpl.getInputStream(ClickHouseStatementImpl.java:633)
    at ru.yandex.clickhouse.ClickHouseStatementImpl.executeQuery(ClickHouseStatementImpl.java:117)
    at ru.yandex.clickhouse.ClickHouseStatementImpl.executeQuery(ClickHouseStatementImpl.java:100)
    at ru.yandex.clickhouse.ClickHouseStatementImpl.executeQuery(ClickHouseStatementImpl.java:95)
    at ru.yandex.clickhouse.ClickHouseStatementImpl.executeQuery(ClickHouseStatementImpl.java:90)
Caused by: org.apache.http.NoHttpResponseException: xxx.xxx.xxx.xxx:8123 failed to respond
    at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:143)
    at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:57)
    at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:261)
    at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:165)
    at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:167)
    at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:272)
    at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:124)
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:271)
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
    at ru.yandex.clickhouse.ClickHouseStatementImpl.getInputStream(ClickHouseStatementImpl.java:614)
    ... 6 more

【问题讨论】:

【参考方案1】:

这是 JDBC-driver https://github.com/ClickHouse/clickhouse-jdbc/issues/290 中的一个著名错误

【讨论】:

以上是关于mysql数据库查询没有数据的时候会返回啥,是false,还是' ',还是null,还是啥啊?的主要内容,如果未能解决你的问题,请参考以下文章

mysql啥时候使用子查询,啥时候使用表连接查询,关系多张表的时候该怎么查询

sql语句中嵌套时候用in 和=有啥区别

MySQL 数据库中 left outer join 和 left join 啥区别?

mysql 存储过程

MySQL 中视图有啥作用,啥时候有需要用到,能够提供一些学习的网站或者资料?

MySQL like 在啥情况下会走索引