排序MYSQL后返回Asc增量

时间:2015-08-27 14:55:16

标签: mysql laravel

我希望按价格订购后有asc索引号/序列号。这意味着我希望最高金额是第一行,然后它的序列号是1,等等。

serial number |  products  |  price
1                A            10000
2                C            4000
3                B            20
4                D            10

我试过这些:

//第一次试用

select COALESCE((id) + 0, 0) as serial 

//第二次审判

SELECT  @s:=@s+1 serial_number,student_id,student_name,student_avg
FROM    students,
    (SELECT @s:= 0) AS s
WHERE
student_avg > 4;

两个都给我序列号不是1 - n,它搞砸了。

仅供参考:我正在使用laravel 4.2

2 个答案:

答案 0 :(得分:1)

你应该决定你的问题是什么?约students或约products? :-)苹果还是橘子? : - )

我选择了产品部分:

http://sqlfiddle.com/#!9/fe0f2/2

SET @idx=0;

SELECT * , @idx:=@idx+1 `idx`
FROM products
ORDER BY price desc

答案 1 :(得分:0)

你的第二次试验已经结束了

SELECT @s:=@s+1 serial_number,student_id,student_name,student_avg
FROM students
CROSS JOIN (SELECT @s:= 0) AS s
WHERE student_avg > 4;
BTW,这是纯粹的mysql查询,与laravel无关