鍍金池/ 問答/Java  PHP  數(shù)據(jù)庫  HTML/ javascript 如何在sql 字符串 內(nèi)拼接nulll 使得能被mysql

javascript 如何在sql 字符串 內(nèi)拼接nulll 使得能被mysql 識(shí)別

clipboard.png

這樣的語句在mysql 是能正常執(zhí)行的。

但在程序里面 是通過字符串的形式拼接的sql ,最后拼接出來 null 就變成 'null'。 sql自然執(zhí)行失敗。如下圖。

clipboard.png

在orm 框架里面 看到 可以直接輸出sql 的null ,我這里的問題就是 它是怎么做到的? 我上面該怎么寫,才能使字符串拼接出來的sql 能被 mysql正確識(shí)別.
clipboard.png

回答
編輯回答
空白格

ORM框架是通過你調(diào)用的方法來決定怎么看待 null (作為文本就加引號(hào),作為關(guān)鍵字就不加引號(hào))。

看你拼接出來的 sql 語句,應(yīng)該是直接 for 循環(huán)遍歷出來的,要么在循環(huán)中加判斷,遇到aliasName時(shí),前面的key(或者其他什么,我看不出來你們這里是用什么東西來表示這個(gè)對應(yīng)關(guān)系的)不加引號(hào);要么在拿到這個(gè)
sql 語句后,手動(dòng) string.replace('null as aliasName', 'null as aliasName') 來替換掉。

2018年1月11日 13:30
編輯回答
莫小染

你自己拼接的sql里,select是你寫的嗎,那個(gè)為啥沒有引號(hào),null就怎么弄唄。

2017年1月30日 09:36
編輯回答
雨蝶

我試過前端用 sequelize 的語法拼 sql。像這樣

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

前端發(fā)這樣的 json,序列化一下發(fā)給 node 中間層,直接就可以用 sequelize 處理了。 null 的情況是可以處理的。你直接發(fā)字符串給 orm,我覺得它是不認(rèn)識(shí)的

2017年2月11日 19:06
編輯回答
乖乖瀦

被轉(zhuǎn)義了,你舉例的那個(gè)orm使用了他封裝的方法自然是可以的,不清楚你具體的環(huán)境,不過原生SQL是絕對可行的。

2017年8月12日 13:15