您能否返回与先前搜索相比的行位置。例如,如果我做了一个简单的查询:select * from table where name='aa'
它会返回
+--+----+---+
|id|name|cid|
+--+----+---+
| 1| aa| 2|
| 5| aa| 2|
| 8| aa| 2|
| 9| aa| 2|
|10| aa| 2|
+--+----+---+
如果我将该查询更改为:
从表中选择 *,其中 name='aa' 且 id='5'
它会返回
+--+----+---+
|id|name|cid|
+--+----+---+
| 5| aa| 2|
+--+----+---+
现在,根据 where name='aa'
的第一次搜索,有 5 行,其中 和 id='5'
是第二行。
那么,有没有办法获得与初始设置相比的行位置?我希望能够打印“Result 2 of 5”。我可以通过计算总行数得到数字5
。我只需要获取 和 id='5'
的位置。我知道这是初始集的第二行,但我似乎无法找到返回该信息的方法。如果我没有正确解释这一点,请原谅我,因为我不太知道如何提出这个问题。
最佳答案
尽管如此,自然顺序在 SQL 中没有任何意义 - 看起来,您指的是按 id
列排序。那么你的位置就是 id
小于或等于这个的行数:
SELECT
*,
(SELECT COUNT(1) FROM `table` WHERE name='aa' AND id<=5) AS position
FROM
`table`
WHERE
name='aa' AND id=5
关于PHP 和 MYSQL - 获取行的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20770833/