我希望按价格订购后有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
答案 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无关