PHP 和 MYSQL - 获取行的位置

标签 php mysql sql

您能否返回与先前搜索相比的行位置。例如,如果我做了一个简单的查询: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/

相关文章:

php - 如何 yii getPost 获取数组 _POST 变量?

php - 在错误消息后保留寄存器详细信息以防止重新输入数据

PHP 在不使用解包的情况下将主体读入字节数组

javascript - 如何从base64数据字符串javascript保存PNG图像服务器端

php - 当多个用户插入新评论时,在 sql 查询中增加无限滚动分页偏移量

具有 EMP_ID 和大量时间戳的 mySQL 表

php - MySQL latin1_swedish_ci 换行符 <br>

sql - 我可以在提交后回滚 SQLite 事务吗?

sql - 获取列总和并用于计算总数的百分比,为什么不适用于 CTE

php - 表单验证期间具有多个参数的 Codeigniter 中的回调函数