首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

两条困惑的sql 求各位解答

2012-11-14 
两条不解的sql 求各位解答SELECT count(*) from (SELECT uuid,create_date from tbb_api_access WHERE cre

两条不解的sql 求各位解答
SELECT count(*) from (SELECT uuid,create_date from tbb_api_access WHERE create_date > '2012-02-17' GROUP BY uuid) as t

SELECT count(*) from (SELECT id,create_date from tbb_api_access GROUP BY uuid) as t WHERE create_date > '2012-02-17'

这条sql在执行结果上为什么会有差异?

[解决办法]

如果表tbb_api_access只有一条记录 
uuid,create_date
1, '2012-02-11'

则你可以看到(SELECT uuid,create_date from tbb_api_access WHERE create_date > '2012-02-17' GROUP BY uuid) 返回是空

而(SELECT id,create_date from tbb_api_access GROUP BY uuid) 是 1,'2012-02-11'
[解决办法]
理解一下WHERE的执行顺序。
[解决办法]
结果一样吧
[解决办法]
一个是先WHERE再GROUP
另一个是先GROUP再WHERE

热点排行