当前位置: 首页 > news >正文

城市建设网站设计项目网络图经常被称为什么

城市建设网站设计,项目网络图经常被称为什么,成都网站建设设计公司,网站建设优化服务价位本文内容遵从CC版权协议, 可以随意转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址: http://www.penglixun.com/tech/database/having_without_groupby_in_mysql.html 今天有同学给我反应#xff0c;有一张表#xff0c;id是主键#xff0c;这样的写法可…本文内容遵从CC版权协议, 可以随意转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址: http://www.penglixun.com/tech/database/having_without_groupby_in_mysql.html 今天有同学给我反应有一张表id是主键这样的写法可以返回一条记本文内容遵从CC版权协议, 可以随意转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址: http://www.penglixun.com/tech/database/having_without_groupby_in_mysql.html今天有同学给我反应有一张表id是主键这样的写法可以返回一条记录“SELECT * FROM t HAVING idMIN(id);”但是只是把MIN换成MAX这样返回就是空了“SELECT * FROM t HAVING idMAX(id);”这是为什么呢我们先来做个试验验证这种情况。这是表结构初始化两条记录然后试验rootlocalhost : plx 10:25:10 show create table t2\G*************************** 1. row ***************************Table: t2Create Table: CREATE TABLE t2 (a int(11) DEFAULT NULL,id int(10) unsigned NOT NULL AUTO_INCREMENT,PRIMARY KEY (id)) ENGINEInnoDB AUTO_INCREMENT5 DEFAULT CHARSETutf8rootlocalhost : plx 10:25:15 select * from t2;----------| a | id |----------| 1 | 1 || 1 | 3 |----------rows in set (0.00 sec)rootlocalhost : plx 10:25:20 SELECT * FROM t2 HAVING idMIN(id);----------| a | id |----------| 1 | 1 |----------row in set (0.00 sec)rootlocalhost : plx 10:25:30 SELECT * FROM t2 HAVING idMAX(id);Empty set (0.00 sec)初看之下好像真的是这样哎怎么会这样呢我再试一下把a字段改一个为10然后试下a字段rootlocalhost : plx 10:26:58 select * from t2;----------| a | id |----------| 10 | 1 || 1 | 3 |----------rows in set (0.00 sec)rootlocalhost : plx 10:28:20 SELECT * FROM t2 HAVING aMAX(a);----------| a | id |----------| 10 | 1 |----------row in set (0.00 sec)rootlocalhost : plx 10:28:28 SELECT * FROM t2 HAVING aMIN(a);Empty set (0.00 sec)我擦这回MAX能返回MIN不能了这又是为啥呢旁白一般来说HAVING子句是配合GROUP BY使用的单独使用HAVING本身是不符合规范的但是MySQL会做一个重写加上一个GROUP BY NULL”SELECT * FROM t HAVING idMIN(id)”会被重写为”SELECT * FROM t GROUP BY NULL HAVING idMIN(id)”这样语法就符合规范了。继续……但是这个 GROUP BY NULL 会产生什么结果呢经过查看代码和试验可以证明GROUP BY NULL 等价于 LIMIT 1rootlocalhost : plx 10:25:48 SELECT * FROM t2 GROUP BY NULL;----------| a | id |----------| 10 | 1 |----------row in set (0.00 sec)也就是说GROUP BY NULL 以后只会有一个分组里面就是第一行数据。但是如果这样MIN、MAX结果应该是一致的那也不应该MAX和MIN一个有结果一个没结果啊这是为什么呢再做一个测试。修改一下数据然后直接查看MIN/MAX的值rootlocalhost : plx 10:26:58 select * from t2;----------| a | id |----------| 10 | 1 || 1 | 3 |----------rows in set (0.00 sec)rootlocalhost : plx 10:27:04 SELECT * FROM t2 GROUP BY NULL;----------| a | id |----------| 10 | 1 |----------row in set (0.00 sec)rootlocalhost : plx 10:30:21 SELECT MAX(a),MIN(a),MAX(id),MIN(id) FROM t2 GROUP BY NULL;----------------------------------| MAX(a) | MIN(a) | MAX(id) | MIN(id) |----------------------------------| 10 | 1 | 3 | 1 |----------------------------------row in set (0.00 sec)是不是发现问题了MAX/MIN函数取值是全局的而不是LIMIT 1这个分组内的。因此当GROUP BY NULL的时候MAX/MIN函数是取所有数据里的最大和最小值所以啊”SELECT * FROM t HAVING idMIN(id)”本质上是”SELECT * FROM t HAVING id1″, 就能返回一条记录而”SELECT * FROM t HAVING idMAX(id)”本质上是”SELECT * FROM t HAVING id3″当然没有返回记录这就是问题的根源。测试一下GROUP BY a这样就对了每个分组内只有一行所以MAX/MIN一样大这回是取得组内最大和最小值。rootlocalhost : plx 11:29:49 SELECT MAX(a),MIN(a),MAX(id),MIN(id) FROM t2 GROUP BY a;----------------------------------| MAX(a) | MIN(a) | MAX(id) | MIN(id) |----------------------------------| 1 | 1 | 3 | 3 || 10 | 10 | 5 | 5 |----------------------------------rows in set (0.00 sec)GROUP BY NULL时MAX/MIN的行为是这个问题的本质所以啊尽量使用标准语法玩花样SQL之前一定要搞清楚它的行为是否与理解的一致。Enjoy MySQL!本条技术文章来源于互联网如果无意侵犯您的权益请点击此处反馈版权投诉本文系统来源php中文网
http://www.yutouwan.com/news/112910/

相关文章:

  • 百度是门户网站吗简述网站主要流程
  • 上海网站建设广告语国内卖到国外的电商平台
  • 站长工具查询网站信息怎么设计网站规划方案
  • 常见的电子商务网站网址网站设计尺寸大小
  • 一个专门做ppt的网站网站开发流程图软件
  • 固始做网站的公司夜夜夜在线观看
  • 哪里可以接一些网站项目做青岛企业网站建设公司
  • 基于百度地图的网站开发微网站怎么做百度关键词排名
  • aspnet网站开发到部署流程成都投资网站建设
  • 云羽网络做网站怎么样电商网店运营
  • 眼镜网站怎么做it外包工作
  • 手机企业网站推广wordpress 七牛缩略图
  • 网站建设是那个行业最好的商业网站
  • 网站开发 参考文献微信推广联盟
  • 参考消息电子版在线阅读aso优化重要吗
  • 我的世界做指令的网站百度教育小程序入口
  • 廉价网站建设网站和公众号的区别是什么
  • 做孵化的网站微信公众号推广
  • 自己做的网站能放到网上么绵阳做最好优化网站的
  • 网站建设公司网站制作怎么选一个适合自己的网站
  • 制作一个网站就等于制作一个网页合肥建设银行官网招聘网站
  • 福建泉州曾明军的网站最牛网站设计公司
  • 互联网安全管理服务平台seo技术培训江门
  • 网站建设实施过程电子商务网站开发技术
  • 惠州网站建设 惠州邦网站建设洪塔
  • 网站设计网站公司云主机可以做几个网站
  • 免费信息发布网站大全鹰潭网站商城建设
  • 电子商务网站建设的实训心得西宁知名网站制作公司
  • 学校网站建设材料h5可视化开发工具
  • 门户网站开发哪种语言比较好汉川网站开发