Actualmente tengo una aplicación que muestra ciertos datos que se recuperan de una base de datos en la nube MySQL (JawsDB). Tengo algunas dificultades para pasar un campo específico a mi declaración SQL.
Básicamente, recupera el trabajo de un menú desplegable, luego usa axios para obtener los datos de mi base de datos.
useEffect(() => { (async() => { const result = await axios.get('/submissions/${jobCategory}') setSubmissions(result.data.submissions) })() }, [])Aquí está la solicitud de obtención:
app.get('/submissions/:jobCategory', (req, res) => { sql_database.getSubmissionsCategory((error, submissions) => { if (error) { res.send({error: error.message}); return } res.send({submissions}); }) });Y finalmente, aquí está la declaración sql:
function getSubmissionsCategory(callback) { const query = ` SELECT * FROM submissions WHERE jobCategory="data analyst" ` connection.query(query, (error, results) => { if (error) { callback(error) return } callback(null, results) }) } exports.getSubmissionsCategory = getSubmissionsCategory;Mi código funciona cuando especifico manualmente el tipo de trabajo específico, como el anterior. Mi pregunta es ahora que pasé la categoría de trabajo al eje, ¿cómo actualizo dinámicamente mi declaración SQL de acuerdo con lo que se está pasando?
Por ejemplo, paso "Ingeniero de software", me gustaría que la instrucción SQL fuera: SELECCIONAR * DESDE envíos DONDE jobCategory="Ingeniero de software"
Debe pasar el valor almacenado en jobCategory a la función getSubmissionsCategory . Luego, debe modificar la consulta en función de su solicitud.
Por ejemplo:
app.get('/submissions/:jobCategory', (req, res) => { sql_database.getSubmissionsCategory(req.params.jobCategory, (error, submissions) => { // ... } }) function getSubmissionsCategory(jobCategory, callback) { // ... connection.query("SELECT * FROM table WHERE id = ?", [jobCategory], callback) // ... }Si está utilizando el paquete npm mysql, eche un vistazo a los documentos sobre cómo realizar consultas con variables. (o para mysql2 ).