首页 / MYSQL / MySQL – 查询返回NULL
MySQL – 查询返回NULL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL – 查询返回NULL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1248字,纯文字阅读大概需要2分钟。
内容图文
![MySQL – 查询返回NULL](/upload/InfoBanner/zyjiaocheng/907/e9082358d42f4f93acfdc3be4537893b.jpg)
我有以下代码:
SELECT q25, (
(
AVG( q1 ) + AVG( q2 ) + AVG( q3 ) ) /3 ) AS Overall
FROM t_results
WHERE brand = 'XYZ'
AND DATE = 'MAY2012'
GROUP BY q25
ORDER BY Overall
DESC LIMIT 1
如果查询找不到数据,phpmyadmin将返回以下消息(这是完全正确的):
MySQL returned an empty result set (i.e. zero rows). ( Query took 0.0178 sec )
但是,我想要的是实际返回NULL值,这可能吗?我感谢这可能不是最佳实践,但我正在使用继承的代码,这可能是解决方案的简单和最快捷的途径.
一如既往地谢谢,
H.
解决方法:
创建一个只有一行的表.然后,您可以使用左连接来实现所需的NULL结果.
CREATE TABLE dummy (d TINYINT NOT NULL);
INSERT INTO dummy SET d = 1;
SELECT q25,
( ( AVG( q1 ) + AVG( q2 ) + AVG( q3 ) ) /3 ) AS Overall
FROM dummy LEFT JOIN t_results
ON brand = 'XYZ'
AND DATE = 'MAY2012'
GROUP BY q25
ORDER BY Overall DESC
LIMIT 1
您还可以使用子查询替换虚拟表:
SELECT q25,
( ( AVG( q1 ) + AVG( q2 ) + AVG( q3 ) ) /3 ) AS Overall
FROM (SELECT 1) AS dummy LEFT JOIN t_results
ON brand = 'XYZ'
AND DATE = 'MAY2012'
GROUP BY q25
ORDER BY Overall DESC
LIMIT 1
通过sqlfiddle进行测试,您还可以在其中试验替代品.
选择结果的条件(以前在WHERE子句中)现在必须进入ON子句.否则左连接将产生非NULL行,这些行将被WHERE删除,而不是如果找不到匹配的行则生成单个NULL行.如果原始查询中没有WHERE条件,则可以使用ON 1表示任何行匹配.
内容总结
以上是互联网集市为您收集整理的MySQL – 查询返回NULL全部内容,希望文章能够帮你解决MySQL – 查询返回NULL所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。