假设我在数据库中有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']);
在Oracle,Postgre和MSSQL中,您可以使用某种形式的row_number函数。在MySql中,你可以在变量的帮助下使用emulate it。
希望这对你有用..(:
SELECT ROW_NUMBER()OVER(ORDER BY BookName ASC) AS RowNo,
BookName
FROM TableName