这是分期付款表。我想得到第 3 行的 instalments.id 46 位置。
请务必查看订单号。
第一列是结果应返回的值。
| id | order_id |
------------------------
1 | 23 | OOO12345 |
------------------------
2 | 45 | OOO12345 |
------------------------
3 | 46 | OOO12345 |
------------------------
4 | 61 | OOO12345 |
------------------------
1 | 62 | OOO12346 |
------------------------
2 | 63 | OOO12346 |
------------------------
3 | 64 | OOO12346 |
------------------------
instalments.id = 46 => 3
instalments.id = 63 => 2
SELECT wr.order_id, i1.previous_rows
// other fields from other joined tables
FROM writers.work_records wr
LEFT JOIN writers.instalments i ON i.id = wr.instalment_id
LEFT JOIN (
SELECT COUNT(id) as previous_rows, order_id, id
FROM instalments
) AS i1 ON i1.order_id = wr.order_id AND i1.id <= wr.instalment_id
WHERE
wr.order_id = '00012345'
conditions
请帮忙。
最佳答案
假设您的 ID 是有序的,您可以选择 ID 小于或等于您想要的 ID 的行数:
SELECT COUNT(id) as previous_rows
FROM installments
WHERE id <= 46
关于mysql - 如何获取行数(记录 ID 所在的位置),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30236739/