作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 Gernal 中的 nodejs
还很陌生,我遇到了 mysql
选择的问题。所以,假设我有一个 id 数组,我想从我的 MySQL 数据库中选择它们,例如:
Con.query('SELECT * FROM Table WHERE Id IN (1,2,3,4)' , function (err,
results, fields) { results contains: 1,2,3 because 4 dont exists in DB }
所以我会收到 ID 为 1、2、3 的行的数据,但不会收到 ID 4 的数据,因为它不存在。我想知道我如何检测到 ID 4 不存在。
有没有一种方法可以检索我在查询函数中请求的所有 ID,或者我可以启用的一种选项,如果它不存在,我可以为给定的 ID 接收 NULL,例如:
ID 1: Data
ID 2: Data
ID 3: Data
ID 4: null - because dont exists
如果用 IN 语句没法解决,我可以简单地做 4 个单例吗使用显式 ID 选择(因为如果数据不存在,我将收到 0)或者如果我在 1 分钟内有 1000 个选择,它是否会使 MySQL 过载?
最佳答案
如果你把ID放在数组中,你必须通过循环检查它;
var ids = [1,2,3,4]
Con.query('SELECT * FROM Table WHERE Id IN (1,2,3,4)' , function (err, results, fields) {
for(var i = 0;i<ids.length;i++){
if(ids.indexOf(fields[i]['id'])>-1){
console.log(" found ID = "+ids[i])
}else{
console.log(" ID NOT FOUND = "+ids[i])
}
}
});
关于MySQL Select IN with NodeJs 检测空字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37290884/
我是一名优秀的程序员,十分优秀!