0

重複の可能性:
MySql行番号?

私はPHP5とmysqliを使用しています。'id'列と'name'列を持つ章の表があります。指定された行がどのインデックスにあるかを確認するためのクエリを実行する簡単で効率的な方法はありますか?たとえば、私の「章」テーブルのレコードは次のとおりです。


id | 名前

1 | こんにちは

4 | 世界

5 | 元気ですか?


そして、「お元気ですか?」を知りたいとしましょう。は。望ましい結果はインデックス3になります(これは、IDの昇順でソートされたテーブルの3番目の行であるため)。

私が思いついた唯一の解決策は、それらすべてをクエリし、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 に答える