如何使用WHERE NOT EXISTS修复nodeJS中的“ SQL语法有错误”

时间:2019-05-14 04:16:22

标签: javascript mysql node.js angular

人们,我正在使用nodejs + angular,当我尝试使用 WHERE NOT EXISTS 进行查询时,程序崩溃并显示语法错误,我不知道为什么。

  

错误:ER_PARSE_ERROR:您的SQL语法有错误;检查   与您的MySQL服务器版本相对应的手册   在'WHERE NOT EXISTS(SELECT * FROM disp_aulas WHERE   第1行的'aula'='E'AND'turno'='0'AN'

如果有更好的方法来完成之后的工作,请告诉我。

我尝试使用 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}]);

});

我希望程序仅在尚未插入表的情况下才能插入。

0 个答案:

没有答案