javascript 如何在sql 字符串 内拼接nulll 使得能被mysql 识别

clipboard.png

这样的语句在mysql 是能正常执行的。

但在程序里面 是通过字符串的形式拼接的sql ,最后拼接出来 null 就变成 'null'。 sql自然执行失败。如下图。

clipboard.png

在orm 框架里面 看到 可以直接输出sql 的null ,我这里的问题就是 它是怎么做到的? 我上面该怎么写,才能使字符串拼接出来的sql 能被 mysql正确识别.
clipboard.png

阅读 4.6k
4 个回答

你自己拼接的sql里,select是你写的吗,那个为啥没有引号,null就怎么弄呗。

被转义了,你举例的那个orm使用了他封装的方法自然是可以的,不清楚你具体的环境,不过原生SQL是绝对可行的。

ORM框架是通过你调用的方法来决定怎么看待 null (作为文本就加引号,作为关键字就不加引号)。

看你拼接出来的 sql 语句,应该是直接 for 循环遍历出来的,要么在循环中加判断,遇到aliasName时,前面的key(或者其他什么,我看不出来你们这里是用什么东西来表示这个对应关系的)不加引号;要么在拿到这个
sql 语句后,手动 string.replace('null as aliasName', 'null as aliasName') 来替换掉。

我试过前端用 sequelize 的语法拼 sql。像这样

{
  id: 1,
  where: {
   name: 'ss',
   age: 10
 }
}

前端发这样的 json,序列化一下发给 node 中间层,直接就可以用 sequelize 处理了。 null 的情况是可以处理的。你直接发字符串给 orm,我觉得它是不认识的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题