猿问

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


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

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

https://img.mukewang.com/5c7f695a0001f58f04770159.jpg

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

https://img1.mukewang.com/5c7f695d000173d305670179.jpg

吃鸡游戏
浏览 943回答 3
3回答

千万里不及你

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

缥缈止盈

ORM框架是通过你调用的方法来决定怎么看待 null (作为文本就加引号,作为关键字就不加引号)。看你拼接出来的 sql 语句,应该是直接 for 循环遍历出来的,要么在循环中加判断,遇到aliasName时,前面的key(或者其他什么,我看不出来你们这里是用什么东西来表示这个对应关系的)不加引号;要么在拿到这个sql 语句后,手动 string.replace('null as aliasName', 'null as aliasName') 来替换掉。

HUX布斯

我试过前端用 sequelize 的语法拼 sql。像这样{  id: 1,  where: {   name: 'ss',   age: 10 }}前端发这样的 json,序列化一下发给 node 中间层,直接就可以用 sequelize 处理了。 null 的情况是可以处理的。你直接发字符串给 orm,我觉得它是不认识的
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答