Вопрос:
Как проверить, не найдено ли совпадение в mysql (node.js)?
mysql.query(«select * from table1 where name = ‘abcd'», function(error, result, field) { if(error) { exist(error); //No error } else if(result) { console.log(result); //displays ‘[]’ exist(null, result); } else { exist(null, null); //It is never execute } }); function exist(error, result) { if(result) console.log(«Test:»+result); //Executed and displays ‘Test:’ }
Моя база данных не содержит имя = ‘abcd’. Итак, как я могу проверить, не соответствует ли запрос?
Лучший ответ:
В результате запроса вы получаете пустой массив ([]), поскольку, как вы сказали, ваша база данных не содержит строки с name = ‘abcd’.
Когда вы выполните:
if (result) { if (result) console.log(«Test:» + result);
вы введете if, потому что Javascript оценивает true для []. Взгляните на эту статью здесь, в которой объясняется, как Javascript оценивает значения true и false.
Лучше всего проверить, пуст ли ваш массив результатов:
if (result.length > 0) { if (result) console.log(«Test:» + result);