javascript - Express/MySQL 未返回 MySQL Workbench 返回的相同值
问题描述
当我在 MySQL Workbench 上运行它时,我有一个完美运行的查询,但是当我在 Express 上运行它时,它会返回我数据库中的所有数据。请帮忙修复?
PS。以前发过这个,但没有解决。
- 客户
$.ajax({
url: '/filter',
type: 'get',
contentType: 'application',
data: { categoryIDs : checkedCategory,
materialIDs : checkedMaterial,
designIDs : checkedDesign},
success: function(response) {
console.log(response.products);
}
});
--服务器代码
getFilteredTable: function(req, res, next) {
var filter="SELECT COUNT(A.id) \
FROM tbl_product A JOIN tbl_product_details B ON A.id = B.prod_id \
JOIN tbl_category C ON A.id = C.prod_id \
JOIN tbl_material D ON A.id = D.prod_id \
JOIN tbl_design E ON A.id = E.prod_id \
WHERE C.category_id IN (?) \
AND (D.material_id IN (?) \
OR E.design_id IN (?))";
mysqlConnection.query(filter, [req.query.categoryIDs, req.query.materialIDs, req.query.designIDs], function(err, rows, fields) {
if(!err)
res.send({products : rows});
else
console.log(err);
});
},
这是我的查询:
SELECT COUNT(A.id)
FROM tbl_product A
JOIN tbl_product_details B ON A.id = B.prod_id
JOIN tbl_category C ON A.id = C.prod_id
JOIN tbl_material D ON A.id = D.prod_id
JOIN tbl_design E ON A.id = E.prod_id
WHERE C.category_id IN (6) AND (D.material_id IN (15) OR E.design_id IN (39));
我希望输出是(工作台结果):
COUNT(A.id): 42
相反,它给了我:
COUNT(A.id): 1582
解决方案
推荐阅读
- java - 使用杰克逊反序列化字符串以映射多种类型
- java - 创建 Firefox 配置文件并关闭木偶
- python - 以字母“b”开头的 Iterm Python3 文本拆分元素
- laravel - 在具有多个 htaccess 的 laravel 中路由
- python - 基于自定义函数图创建数组(Python)
- alert - 在普罗米修斯的标签中使用标识。标签的最佳实践
- linux - 即使某些完成,也会不断填充四个并行进程槽
- tensorflow - TensorFlow 奇怪的 CPU 使用率
- yii - 覆盖 ActiveQuery->init() 中的条件
- javascript - 在环回中使用自定义中间件进行用户授权