这样的语句在mysql 是能正常执行的。
但在程序里面 是通过字符串的形式拼接的sql ,最后拼接出来 null 就变成 'null'。 sql自然执行失败。如下图。
在orm 框架里面 看到 可以直接输出sql 的null ,我这里的问题就是 它是怎么做到的? 我上面该怎么写,才能使字符串拼接出来的sql 能被 mysql正确识别.
这样的语句在mysql 是能正常执行的。
但在程序里面 是通过字符串的形式拼接的sql ,最后拼接出来 null 就变成 'null'。 sql自然执行失败。如下图。
在orm 框架里面 看到 可以直接输出sql 的null ,我这里的问题就是 它是怎么做到的? 我上面该怎么写,才能使字符串拼接出来的sql 能被 mysql正确识别.
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,我觉得它是不认识的
10 回答11.1k 阅读
15 回答8.4k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
8 回答6.2k 阅读
2 回答2.6k 阅读✓ 已解决
你自己拼接的sql里,select是你写的吗,那个为啥没有引号,null就怎么弄呗。