gpt4 book ai didi

mysql - 如何正确执行sql查询(node.js + express)

转载 作者:行者123 更新时间:2023-11-29 05:05:31 33 4
gpt4 key购买 nike

在数据库中,我有两个表:包含所有用户注册详细信息的用户和包含用户 friend 关系数据的 friend (friend_one、friend_two 是引用 users.user_id 的外键)、状态(0 - 期望,1 - 拒绝, 2 - 接受) 和时间戳。 friend_one - 始终是友谊的发起者。女生只能加男生好友,男生只能加女生好友。因此,当我尝试获取用户的 friend 数量时 - 例如,id 为 5 的男孩: enter image description here

exports.amountOfFriends = function (req, res) {
var user = req.session.user,
userId = req.session.session_id;
if(userId == null){
res.redirect("/login");
return;
}
let sql = `SELECT COUNT(*) myCount FROM friends WHERE status = ? AND friends_one =? OR friends_two =? `;
let post = [2, userId, userId];
connection.query(sql, post, (err, result) => {
if(err){
console.log(err)
}
res.json(result);
console.log(result[0].myCount);

});

};

我得到值 - 2。但正确的值是 3。因为 ID 为 5 的用户有三个 friend 。请帮我解决这个问题。 enter image description here

enter image description here

enter image description here

最佳答案

您需要围绕两个 OR 条件的 ()

 `SELECT COUNT(*) myCount FROM friends
WHERE status = ? AND ( friends_one =? OR friends_two =?) `;

关于mysql - 如何正确执行sql查询(node.js + express),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48986808/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com