Code Bye

请教sql语句解释

有一条mysql语句
select @rank:=0;
select * from(select *,(@rank:=@rank+1) as rank from t_1038_20150812) as dd where dd.rank%40=0;
这两条语句是要查询什么?
这两条语句可以合并成一条语句吗?
解决方案

10

对符合where条件的sql结果集加上一列排名列   合并不了

10

取 t_1038_20150812 表数据位置能被 40 整除的纪录。
select @rank:=0;
select *,(@rank:=@rank+1) as rank from t_1038_20150812
这两句, 就是给表t_1038_20150812数据添加一个连续的序号字段 rank
合起来, 就是取序号能被 40 整除的纪录。

10

你是想让语句合并成1个吗,这个在mysql没办法,假如是其他的数据库通过rank函数就可以了。
另外,这个语句其实就是给每天记录编个号,从1开始2,3,4。 编好号后,再过滤出 能被40整除的 记录

10

select *,(@rank:=@rank+1) as rank from t_1038_20150812,(select @rank:=0) tt;

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明请教sql语句解释