単語と関連する番号で構成される単純なMySQLテーブルがあります。番号は単語ごとに一意です。インデックスが指定された数よりも大きい最初の単語を見つけたい。例として:
-----------------------
| WORD: | F_INDEX: |
|---------------------|
| a | 5 |
| cat | 12 |
| bat | 4002 |
-----------------------
番号「9」が与えられた場合、インデックスが9より大きい最初の単語であるため、「cat」を返したいと思います。
次のクエリを実行すると、並べ替えられた行の完全なリストを取得できることを知っています。
SELECT * FROM table_name ORDER BY f_index;
しかし、代わりに、これを行うMySQLクエリを作成したいと思います。(混乱は、クエリの現在の行を追跡する方法がわからないという事実にあります)。私はこのようなものでループできることを知っています:
CREATE PROCEDURE looper(desired_index INT)
BEGIN
DECLARE current_index int DEFAULT 0
// Loop here, setting current_index to whatever the next rows index is,
// then do a comparison to check it to our desired_index, breaking out
// if it is greater.
END;
どんな助けでも大歓迎です。