Два аналогичных оператора SQLite, один работает, другой нет - PullRequest
0 голосов
/ 23 марта 2019

Первое утверждение работает, второе возвращается с ошибкой ниже.Странная вещь, за исключением имен переменных, это одно и то же утверждение, поэтому, если одно работает, другое должно работать также.

"Error: SQLITE_ERROR: no such column: RAF60"  

Где RAF60 - мои данные.Я подумал, что у меня может быть цитата не в том месте, поскольку он пытается прочитать мои данные в виде столбца, но не может их увидеть, а также искал место, где я мог обменять свои данные выражением, но также не смог увидеть это.

RFID1,2,3 и CarPlates1,2,3 отформатированы как текст

Заявление одно в точности так, как показано ниже.

msg.topic = 'SELECT "RFID1", "RFID2", "RFID3", case when "RFID1" = ' + readrfid + ' then RFID1 when "RFID2" = ' + readrfid + ' then RFID2 when "RFID3" = ' + readrfid + ' then RFID3  else null end dbrfid FROM SiteDB'

Вывод ниже изКрасный узел, я переформатировал это, чтобы сделать его легко читаемым.Это показывает, что данные заполняют правильные поля, и этот код работает.Это вышеприведенный оператор со вставленными данными, непосредственно перед отправкой в ​​SQLite

topic:

"SELECT "RFID1", "RFID2", "RFID3", case 
when "RFID1" = 149544749819338 then RFID1 
when "RFID2" = 149544749819338 then RFID2 
when "RFID3" = 149544749819338 then RFID3 
else null 
end dbrfid FROM SiteDB"

payload: "149544749819338"    

_msgid: "232263a1.02d34c"

_event: "node:ad044b82.8c419

0: object

Второй оператор, запрос sql в точности так, как он выглядит ниже

msg.topic = 'SELECT "CarPlate1", "CarPlate2", "CarPlate3", "dbcarplate", case when "CarPlate1" = ' + readlpr + ' then CarPlate1 when "CarPlate2" = ' + readlpr + ' then CarPlate2 when "CarPlate3" = ' + readlpr + ' then CarPlate3  else null end dbcarplate FROM SiteDB

Вывод ниже от Node-Red, я переформатировал его, чтобы сделать его легко читаемым.Это также показывает, что данные заполняют правильные поля, но возвращается с сообщением об ошибке, оператор ниже представляет данные перед их отправкой в ​​SQLite

topic: "SELECT "CarPlate1", "CarPlate2", "CarPlate3", "dbcarplate", case 
when "CarPlate1" = RAF60 then CarPlate1 
when "CarPlate2" = RAF60 then CarPlate2 
when "CarPlate3" = RAF60 then CarPlate3 
else null 
end dbcarplate FROM SiteDB"

payload: " RAF60 "            

_msgid: "f2831f05.42c24"

_event: "node:61abb27f.bc684c"  

Он не запускается в SQLite, и яполучить сообщение об ошибке.

"Error: SQLITE_ERROR: no such column: RAF60"                              
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...