繁体   English   中英

mysql选择行号查询

[英]mysql select row number query

我在尝试根据表的某些子集中的(upvotes-downvotes)选择行号时遇到此查询的麻烦,但我还需要在同一查询中重置@rownum:

该查询有效,但我需要运行其中两个。 无论如何将集合@rownum组合成一个查询,我的尝试都是徒劳的。

SET @rownum = 0;
SELECT rank  
FROM (SELECT *, @rownum:=@rownum + 1 AS 
rank FROM Cars where Auto_SET = 'BMW'
order by (upvotes-downvotes) DESC) d
WHERE ID = 391802

这引发了一个错误:

SELECT rank 
FROM (SELECT *, @rownum:=@rownum + 1 AS 
rank FROM Cars  where Auto_SET = 'BMW' , 
(SELECT @rownum:=0) r order by 
(upvotes-downvotes) DESC) d
WHERE ID = 391913

cross-join应与select from table_nameselect from table_name一起使用,例如

SELECT rank 
FROM (
  SELECT *, 
  @rownum:=@rownum + 1 AS rank 
  FROM Cars ,(SELECT @rownum:=0) r 
  where Auto_SET = 'BMW' 
  order by 
 (upvotes-downvotes) DESC
) d
WHERE ID = 391913

这样的事情也应该起作用:

SELECT @rn := @rn+1 AS RANK,t1.* FROM (

 # Your query here.
 SELECT * FROM Cars WHERE Auto_SET = 'BMW' 
 WHERE ID = 391913 ORDER BY (upvotes-downvotes) DESC

) t1, (SELECT @rn:=0) t2;

祝好运!!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM