用Nodejs实现后端多条件查询

【例子】输入多个条件或者一个条件或者不输入条件均可以查询

【实现】

根据接收的参数是否为空,进行动态拼接sql语句。

 // 多条件查询,动态拼接sql
  var sql = 'select * from record_uncontacted where 1=1'
  if (req.query.recordNum !== '') sql = sql + " and recordNum= '" + req.query.recordNum + "'"
  if (req.query.grade !== '') sql = sql + " and grade= '" + req.query.grade + "'"
  if (req.query.subject !== '') sql = sql + " and subject= '" + req.query.subject + "'"
  if (req.query.studentsex !== '') sql = sql + " and studentsex= '" + req.query.studentsex + "'"

两个注意点:

1、SQL语句拼接加 where 1=1 的原因:避免在所有条件参数为空时,sql语句语法错误,例如 select * from record_uncontacted where and.....

参考:SQL语句拼接常加 where 1=1 的原因

2、sql语句直接拼接字符串变量会报错

例如,一开始写的是 

sql = sql + " and grade= " + req.query.grade

报错:Error: ER_BAD_FIELD_ERROR: Unknown column '一年级' in 'where clause'

然后改成下面这样就可以了

sql = sql + " and grade= '" + req.query.grade + "'"

 

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值