在SQL查询中获取排序位置

时间:2018-01-02 01:44:01

标签: mysql sql yii yii2 yii2-advanced-app

我们说我在数据库中有10本书。当我按照名字排序时,我希望第一本书有一个等级' 1.等等,在查询中。

我无法使用自动增加的ID。

[1] A

[2] B

[3] C

我的场景是硬币并使用Yii2。

    $coins = Coins::find()
        ->select(['id', 'name', 'icon', 'volume_24_hours', 'market_cap', 'price', 'change_24_hours', 'circulating_supply', 'abbreviation'])
        ->where(['is_fiat' => false])
        ->orWhere(['is_fiat' => null])
        ->orderBy(['volume_24_hours' => 'DESC']);

2 个答案:

答案 0 :(得分:0)

在Oracle,Postgre和MSSQL中,您可以使用某种形式的 row_number 功能。在MySql中,您可以在变量的帮助下emulate it

答案 1 :(得分:0)

希望这对你有用..(:

SELECT  ROW_NUMBER()OVER(ORDER BY BookName ASC)  AS RowNo,
          BookName
FROM   TableName