0

可能重复:
MySql 行号?

我正在使用 PHP 5 和 mysqli。我有一个章节表,其中包含“id”和“name”列。是否有一种简单有效的查询方法来检查指定行所在的索引?例如,假设我的“章节”表中的记录是:


编号 | 姓名

1 | 你好

4 | 世界

5 | 你好吗?


假设我想知道“你好吗?” 是。所需的结果将是索引 3(因为它是按 id 升序排序的表中的第三行)。

我想出的唯一解决方案是查询所有这些,然后在 PHP 中循环并找到 $row["id"] == 5 并找出循环中的迭代。有没有更有效的方法来做到这一点?

4

2 回答 2

3
SELECT position FROM
(
   SELECT
   name, @rownum:=@rownum+1 position
   FROM chapters, (SELECT @rownum:=0) r
   ORDER BY id
)
AS position
WHERE name = 'How are you?'
于 2012-10-20T21:15:29.143 回答
0

维克多的回答应该对你有用,但这里也有另一种方法。

 SELECT count(*) as 'pos' From chapters where id <= (Select id from chapters where name = 1567186831 limit 1) order by id
于 2012-10-20T21:23:22.267 回答