Una consulta "estática" sigue siendo la misma en todo momento. Por ejemplo, el botón "Etiquetas" en Stackoverflow, o el botón "7 días" en Digg. En resumen, siempre se asignan a una consulta de base de datos específica, por lo que puede crearlos en el momento del diseño.Cómo crear consultas dinámicas y seguras
Pero estoy tratando de averiguar cómo hacer consultas "dinámicas" donde el usuario básicamente dicta cómo se creará la consulta de la base de datos en tiempo de ejecución. Por ejemplo, en Stackoverflow, puede combinar etiquetas y filtrar las publicaciones de la forma que elija. Esa es una consulta dinámica, aunque muy simple, ya que lo que puedes combinar está dentro del mundo de las etiquetas. Un ejemplo más complicado es si puede combinar etiquetas y usuarios.
En primer lugar, cuando tiene una consulta dinámica, parece que ya no puede usar la API de sustitución para evitar la inyección SQL, ya que los elementos de la consulta dependerán de lo que el usuario decida incluir en la consulta. No puedo ver de qué otra forma construir esta consulta, excepto el uso de anexar cadena.
En segundo lugar, la consulta podría abarcar varias tablas. Por ejemplo, si SO permite a los usuarios filtrar en base a Usuarios y Etiquetas, y estos probablemente viven en dos tablas diferentes, crear la consulta se vuelve un poco más complicado que solo agregar columnas y cláusulas WHERE.
¿Cómo hago para implementar algo como esto?
Para sugerir abstracciones: ¿Qué idioma está utilizando para hablar con su base de datos? ¿Qué base de datos estás usando? –
Su base de datos es muy importante. ¿Qué RDBMS? En segundo lugar, estás dispuesto a limitar en absoluto. ¿Estás dispuesto a decir que solo puedes buscar en 10 etiquetas ... 11 está prohibido? –