「静的」クエリとは、常に同じクエリです。たとえば、Stackoverflow の「タグ」ボタンや、Digg の「7 日間」ボタンです。つまり、これらは常に特定のデータベース クエリにマップされるため、設計時に作成できます。
しかし、ユーザーが基本的に実行時にデータベースクエリを作成する方法を指示する「動的」クエリを実行する方法を理解しようとしています。たとえば、Stackoverflow では、タグを組み合わせて、好きな方法で投稿をフィルタリングできます。組み合わせることができるのはタグの世界であるため、これは非常に単純なクエリですが、動的なクエリです。より複雑な例は、タグとユーザーを組み合わせることができる場合です。
まず第一に、動的クエリがある場合、クエリ要素はユーザーがクエリに含めることを決定したものに依存するため、SQL インジェクションを回避するために置換 API を使用できなくなったようです。文字列の追加を使用する以外に、このクエリを作成する方法がわかりません。
次に、クエリが複数のテーブルにまたがる可能性があります。たとえば、SO でユーザーがユーザーとタグに基づいてフィルター処理できるようにし、これらがおそらく 2 つの異なるテーブルにある場合、クエリの作成は、列と WHERE 句を追加するよりも少し複雑になります。
このようなものを実装するにはどうすればよいですか?