免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6668 | 回复: 4
打印 上一主题 下一主题

sql查询语句不解!! [复制链接]

论坛徽章:
1
摩羯座
日期:2013-09-28 17:07:31
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-09-29 21:33 |只看该作者 |倒序浏览
mysql> select op_id,op_type,op_time from operate where op_id > '2';
+-------+--------------+----------+
| op_id | op_type      | op_time  |
+-------+--------------+----------+
|     3 | after_delete | 05:37:13 |
|     4 | hhhhh        | 06:06:21 |
|     5 | jjjjj        | 06:06:42 |
|     6 | jjjjj        | 06:09:57 |
|     7 | hhhhh        | 06:10:30 |
+-------+--------------+----------+
5 rows in set (0.00 sec)

mysql> select op_id,op_type,op_time from operate where op_id > '2' group by op_type having op_type='jjjjj';
+-------+---------+----------+
| op_id | op_type | op_time  |
+-------+---------+----------+
|     5 | jjjjj   | 06:06:42 |
+-------+---------+----------+
1 row in set (0.01 sec)


本人刚学mysql,在学习sql查询语句时遇到如上的一种情况不解:第一语句查询时显示  jjjjj 有两行,可是下面的一条语句为什么只显示一行,应该显示两行才对啊!麻烦各位解释下?谢谢!!

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
2 [报告]
发表于 2013-09-29 22:17 |只看该作者
hanfeng122525 发表于 2013-09-29 21:33
mysql> select op_id,op_type,op_time from operate where op_id > '2' group by op_type having op_type='jjjjj';
+-------+---------+----------+
| op_id | op_type | op_time  |
+-------+---------+----------+
|     5 | jjjjj   | 06:06:42 |
+-------+---------+----------+
1 row in set (0.01 sec)


本人刚学mysql,在学习sql查询语句时遇到如上的一种情况不解:第一语句查询时显示  jjjjj 有两行,可是下面的一条语句为什么只显示一行,应该显示两行才对啊!麻烦各位解释下?谢谢!


下面的语句中有 GROUP BY op_type 就已经把整个表按装op_type汇总了,所以再加 HAVING op_type='jjjjj' 指定条件时结果也只有一条

论坛徽章:
1
摩羯座
日期:2013-09-28 17:07:31
3 [报告]
发表于 2013-09-29 22:45 |只看该作者
mysql> select op_id,op_type,op_time from operate where op_id > '2' group by op_id having op_type='jjjjj' order by op_id desc;
这样写可以!
回复 2# 关阴月飞


   

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
4 [报告]
发表于 2013-09-29 22:47 |只看该作者
hanfeng122525 发表于 2013-09-29 22:45
mysql> select op_id,op_type,op_time from operate where op_id > '2' group by op_id having op_type='jj ...


GRUOP BY 作用的字段不一样了,自然就可以了

论坛徽章:
0
5 [报告]
发表于 2013-10-12 13:58 |只看该作者
你group by 了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP