Люди, я работаю с nodejs + angular, и когда я пытаюсь сделать запрос с ГДЕ НЕ СУЩЕСТВУЕТ программа вылетает и выдает синтаксическую ошибку, и я не знаю, почему.
Ошибка: ER_PARSE_ERROR: у вас есть ошибка в вашем синтаксисе SQL; проверить
руководство, которое соответствует вашей версии сервера MySQL для права
синтаксис для использования рядом с «где не существует» (SELECT * FROM disp_aulas
WHERE
'aula' = 'E' AND 'turno' = '0' AN 'в строке 1
Также, если есть лучший способ сделать то, что я хочу, пожалуйста, скажите мне.
Я пытался использовать IGNORE , но это все равно дублирует информацию ... может быть, я не понимаю, как использовать "там, где нет".
router.post('/',(req,res,next)=> {
// FALTA COMPROBAR SI ES ADMIN
var dato = {
aula : req.body.aula,
cantPC : req.body.cantPC,
fechaIni : req.body.fechaIni,
fechaFin : req.body.fechaFin,
turno : req.body.turno,
herramientas : req.body.herramientas,
cbox0 : req.body.cbox0,
cbox1 : req.body.cbox1,
cbox2 : req.body.cbox2,
cbox3 : req.body.cbox3,
cbox4 : req.body.cbox4,
cbox5 : req.body.cbox5
};
var fInicio = new Date(dato.fechaIni);
var fFin = new Date(dato.fechaFin);
var timeDifference = Math.abs(fFin.getTime() - fInicio.getTime());
var differentDays = Math.ceil(timeDifference / (1000*3600*24));
var today = moment(fInicio,"MM-DD-YYYY");
var tango = parseInt(dato.herramientas[0]);
var diseno = parseInt(dato.herramientas[1]);
if(tango != 1) {
tango = 0;
}
if(diseno != 1) {
diseno = 0;
}
var lunes = dato.cbox0;
var martes = dato.cbox1;
var miercoles = dato.cbox2;
var jueves = dato.cbox3;
var viernes = dato.cbox4;
var sabado = dato.cbox5;
if(lunes != 1){
lunes = false;
}
if(martes != 1){
martes = false;
}
if(miercoles != 1){
miercoles = false;
}
if(jueves != 1){
jueves = false;
}
if(viernes != 1){
viernes = false;
}
if(sabado != 1){
sabado = false;
}
console.log(differentDays);
for(let i = 0; i <= differentDays+1; i++) {
var tomorrow = today.add(1,'days');
var fecha = tomorrow.format('YYYY-MM-DD');
// console.log(fecha);
if( tomorrow.day() == 0){
} else if (tomorrow.day() == 1 && lunes){
var dato2 = {
aula : req.body.aula,
cantPC : req.body.cantPC,
fecha : fecha,
tango: tango,
diseno: diseno,
turno : req.body.turno
}
console.log("Imprimo dato2: ", dato2);
var q = "INSERT INTO `disp_aulas` SET ? WHERE NOT EXISTS (SELECT * FROM `disp_aulas` WHERE aula='"+dato2.aula+"' AND turno='"+dato2.turno+"' AND fecha='"+dato2.fecha+"')";
bd.query(q,dato2,(err,row)=> {if(err){throw err;}});
} else if (tomorrow.day() == 2 && martes){
var dato2 = {
aula : req.body.aula,
cantPC : req.body.cantPC,
fecha : fecha,
tango: tango,
diseno: diseno,
turno : req.body.turno
}
console.log("Imprimo dato2: ", dato2);
var q = "INSERT INTO disp_aulas SET ? WHERE NOT EXISTS (SELECT aula, turno, fecha FROM disp_aulas WHERE (aula='"+dato2.aula+"' AND turno='"+dato2.turno+"' AND fecha='"+dato2.fecha+"'))";
bd.query(q,dato2,(err,row)=> {if(err){throw err;}});
} else if(tomorrow.day() == 3 && miercoles){
var dato2 = {
aula : req.body.aula,
cantPC : req.body.cantPC,
fecha : fecha,
tango: tango,
diseno: diseno,
turno : req.body.turno
}
console.log("Imprimo dato2: ", dato2);
var q = "INSERT INTO disp_aulas SET ? WHERE NOT EXISTS (SELECT aula, turno, fecha FROM disp_aulas WHERE (aula='"+dato2.aula+"' AND turno='"+dato2.turno+"' AND fecha='"+dato2.fecha+"'))";
bd.query(q,dato2,(err,row)=> {if(err){throw err;}});
} else if(tomorrow.day() == 4 && jueves){
var dato2 = {
aula : req.body.aula,
cantPC : req.body.cantPC,
fecha : fecha,
tango: tango,
diseno: diseno,
turno : req.body.turno
}
console.log("Imprimo dato2: ", dato2);
var q = "INSERT INTO disp_aulas SET ? WHERE NOT EXISTS (SELECT aula, turno, fecha FROM disp_aulas WHERE (aula='"+dato2.aula+"' AND turno='"+dato2.turno+"' AND fecha='"+dato2.fecha+"'))";
bd.query(q,dato2,(err,row)=> {if(err){throw err;}});
} else if(tomorrow.day() == 5 && viernes){
var dato2 = {
aula : req.body.aula,
cantPC : req.body.cantPC,
fecha : fecha,
tango: tango,
diseno: diseno,
turno : req.body.turno
}
console.log("Imprimo dato2: ", dato2);
var q = "INSERT INTO disp_aulas SET ? WHERE NOT EXISTS (SELECT aula, turno, fecha FROM disp_aulas WHERE (aula='"+dato2.aula+"' AND turno='"+dato2.turno+"' AND fecha='"+dato2.fecha+"'))";
bd.query(q,dato2,(err,row)=> {if(err){throw err;}});
} else if(tomorrow.day() == 6 && sabado){
var dato2 = {
aula : req.body.aula,
cantPC : req.body.cantPC,
fecha : fecha,
tango: tango,
diseno: diseno,
turno : req.body.turno
}
console.log("Imprimo dato2: ", dato2);
var q = "INSERT INTO disp_aulas SET ? WHERE NOT EXISTS (SELECT aula, turno, fecha FROM disp_aulas WHERE (aula='"+dato2.aula+"' AND turno='"+dato2.turno+"' AND fecha='"+dato2.fecha+"'))";
bd.query(q,dato2,(err,row)=> {if(err){throw err;}});
}
// console.log(i);
}
res.status(200).send([{id:1}]);
});
Я ожидаю, что программа сделает вставку, только если ее еще нет на столе.