私が構築しているツールの一部には、ユーザーが用意した値リストを準備済みのSQLiteステートメントにプラグインする必要があります。たとえば、ユーザーが希望のサイズと色を指定した場合:SQLite IN()ステートメントを使用して任意の値に一致させる
SELECT * from balloons WHERE size IN ("Medium", "Large") AND color IN ("Red", "Green", "Blue");
ただし、一部のフィールドはオプションで、ユーザーが空白のままにすることもできます。この場合、ツールは問題の列の任意の値を許可する必要があります。たとえば、ユーザーが希望の色を提供していて、任意のサイズを許可したい場合:
SELECT * from balloons WHERE size IN (~anything~) AND color IN ("Red", "Green", "Blue");
通常、サイズの制約を削除するだけです。しかし、SQLステートメントはプレースホルダーで事前構成されているので、解析して直ちに書き直すことは避けたいと考えています。
IN()ステートメント内に任意の値に一致するSQLite構文がありますか?あるいは、指定された値リストまたは値のいずれかを許可するために、これらのクエリを作成する別の方法がありますか?あるいは、私は問題全体に間違った方法で近づいているかもしれません。どんな考えも歓迎です。
ありがとうございます!
リストのサイズが変わるとどうなりますか? –
@CL。それはうまくいきます、それは私が制約を効果的に取り除き、私が問題を抱えているものを許可したい場合のみです。おかげで – Nathan
しかし、サイズが異なると、あらかじめ作成された新しい文が使用されます。なぜあなたはサイズを変更できますが、INを削除できませんか? –