データベースからアルファベット順(ascまたはdesc)の名前フィールドに基づいてsqliteから次または前のレコードを取得しようとしています。ただし、姓は一意のフィールドではありません。また、sqliteのコールバックメカニズムを使用しており、返される可能性のあるすべての結果の結果をバッファリングしたくないため、クエリごとに1つのレコード(LIMIT 1)しか取得できません。クエリから(他にオプションがない場合を除く)。また、customerId(つまり行ID)と呼ばれる一意のフィールドがあります。
これは私が現在使用しているステートメントです。
stream << "select * from customerTable where LastName >= '" << customerLastName << "' order by LastName asc limit 1";
私は次のような他のステートメントを試しました:
stream << "select * from customerTable where LastName >= '" << customerLastName << "' and CustomerId != " << customerId << " order by LastName asc limit 1";
しかし、これは同じ姓の2つのレコード間を行き来し続けます。
したがって、姓が同じであるかどうかに関係なく、次の(または前のレコード)を取得できるトリックを見つける必要があります。