«Статический» запрос - это тот, который всегда остается неизменным. Например, кнопка «Теги» в Stackoverflow или кнопка «7 дней» в Digg. Короче говоря, они всегда отображаются на конкретный запрос к базе данных, поэтому вы можете создавать их во время разработки.
Но я пытаюсь выяснить, как выполнять «динамические» запросы, когда пользователь в основном диктует, как запрос к базе данных будет создаваться во время выполнения. Например, в Stackoverflow вы можете комбинировать теги и фильтровать сообщения по своему выбору. Это динамический запрос, хотя и очень простой, поскольку вы можете комбинировать его с миром тегов. Более сложный пример, если вы можете объединить теги и пользователей.
Прежде всего, когда у вас есть динамический запрос, кажется, что вы больше не можете использовать API подстановки, чтобы избежать внедрения SQL, так как элементы запроса будут зависеть от того, что пользователь решил включить в запрос. Я не вижу, как еще построить этот запрос, кроме как с помощью строки append.
Во-вторых, запрос может охватывать несколько таблиц. Например, если SO позволяет пользователям фильтровать на основе пользователей и тегов, и они, вероятно, находятся в двух разных таблицах, построение запроса становится немного сложнее, чем просто добавление столбцов и предложений WHERE.
Как мне реализовать нечто подобное?