这样的语句在mysql 是能正常执行的。但在程序里面 是通过字符串的形式拼接的sql ,最后拼接出来 null 就变成 'null'。 sql自然执行失败。如下图。在orm 框架里面 看到 可以直接输出sql 的null ,我这里的问题就是 它是怎么做到的? 我上面该怎么写,才能使字符串拼接出来的sql 能被 mysql正确识别.
3 回答

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

HUX布斯
TA贡献1876条经验 获得超6个赞
我试过前端用 sequelize 的语法拼 sql。像这样
{
id: 1,
where: {
name: 'ss',
age: 10
}
}
前端发这样的 json,序列化一下发给 node 中间层,直接就可以用 sequelize 处理了。 null 的情况是可以处理的。你直接发字符串给 orm,我觉得它是不认识的
添加回答
举报
0/150
提交
取消