mysql - 如何将 Limit 和 Offset 与 alias 一起使用,其中 alias 是递增的序列号?
问题描述
我使用别名作为排名编号,每行递增 +1。我有 1000 多行。使用时limit 100 offset 0
,别名显示正确1-100
,但是当limit 200 offset 100
我期望别名显示为时101,102,....200
,它从 1 开始,而行数据实际上来自101 - 200
.
我希望别名随着限制和偏移量增加。
SELECT (@a := @a + 1)asset_rank,
totalSupply,
lastPriceUSD,
marketCap
CAST(volume_24h AS DECIMAL(65, 0)) AS volume24h,
(CASE
WHEN lastPriceUSD > 1 THEN CONCAT('$', FORMAT(lastPriceUSD, 2))
WHEN lastPriceUSD < 1 THEN CONCAT('$', FORMAT(lastPriceUSD, 4))
END) as USDPrice
FROM assetList,
(SELECT @a := 0 ) AS a
WHERE volume_24h > 0 AND isActive = 'yes'
ORDER BY marketCap DESC
limit 200 offset 100
解决方案
当你改变你的偏移量时,你需要改变初始化@a
以匹配,所以offset 100
你会使用
(SELECT @a := 100 ) AS a
代替
(SELECT @a := 0 ) AS a
推荐阅读
- java - 从 Java 读取来自 MQ 的所有消息的问题
- assembly - 使用 GNU 汇编器宏的“表达式后的垃圾”
- javascript - Safari css错误的元素高度
- xamarin - Xamarin Forms,ZXingBarcodeImageView 模糊
- curl - 使用 cURL 将 jenkins 作业从一个视图移动到另一个视图的命令
- leaflet - Mapbox:在给定两个 OSM 节点 ID 的情况下制作一条线
- python - 如何通过 Python 正则表达式从 arp 输出中获取 ip 地址和 mac 地址?
- highcharts - Highchart 不连接线
- php - 如何使用php用新值更新json数据标签的值?
- c# - 如何通过c#中的反射获取特定类型实例(不是对象类型)