nodejs mysql in 语句大坑

版权声明: https://blog.csdn.net/BookNoteY/article/details/81780812

这么写sql 

let sql ='select * from test where id in(?)';

nodejs 执行时 

connect.query(sql,['1,2,3'](err,rows)=>{
                        if(err) res.json({msg:'查询失败!',err:err});
                        connect.release();
                        res.json({msg:'dd',err:rows});
                        }); 

结果 查询不出来,也不报错

因为确实没错 只是 node 在解析时 加载 sql  匹配 参数 会加载成

select * from test where id in(‘1,2,3’)

这样看起好像没错,确实也没错,但是 我想要的结果却出不来,细看一下你可能就会发现 在 in 里面 我想要的是

 1,2,3

不存在那个引号,如果存在引号 也应该是 '1','2','3'

所以会出现,程序没错,逻辑却错了的尴尬局面,找也找不到错在哪,很烦人

解决这个问题 

在sql 里面 这样写 in(?,?)

后面也就只能有两个值了

   

猜你喜欢

转载自blog.csdn.net/BookNoteY/article/details/81780812
今日推荐