Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在我的sql查询中获得正确的用户ID?_Javascript_Mysql_Sql_Node.js - Fatal编程技术网

Javascript 如何在我的sql查询中获得正确的用户ID?

Javascript 如何在我的sql查询中获得正确的用户ID?,javascript,mysql,sql,node.js,Javascript,Mysql,Sql,Node.js,我的节点应用程序中有以下查询: select * from messengerList where messenger_id = ${u_id} and not status = "rejected" or messenged_id = ${u_id} and not status = "rejected" 在函数中,它如下所示 let chatIdList = await sqlSrv.getSqlResults(`select

我的节点应用程序中有以下查询:

select
  *
from
  messengerList
where
  messenger_id = ${u_id}
  and not status = "rejected"
  or messenged_id = ${u_id}
  and not status = "rejected"
在函数中,它如下所示

let chatIdList = await sqlSrv.getSqlResults(`select * from messengerList where messenger_id=${u_id} and not status="rejected" or messenged_id=${u_id} and not status="rejected"`)
    .catch(error => {throw error});
我不想全部选择,我只想选择
id
messenger\u id
messenged\u id
,其中id不等于
u\u id

因此,
chatidleist
应该如下所示:

[{id: 1, messenger_id: 3}, {id: 2, messenged_id: 5}] // messenger_id != messenged_id != u_id

我可以通过更改查询来实现这一点吗?如果是,您能提供这样的查询或示例吗?

除了添加另一个条件以消除您不想显示的条件外,您基本上做了什么:

select
  *
from
  messengerList
where
not status = "rejected"
and messenger_id <> messenged_id
  and (
       messenger_id = ${u_id}
       or messenged_id = ${u_id}
  )
选择
*
从…起
信使名单
哪里
非状态=“已拒绝”
还有信使号,信使号
及(
messenger_id=${u id}
或messenged_id=${u id}
)

如果我理解正确的话。 首先,列出所有数据 然后,使用if查询

简单代码

SELECT * FROM messengerList
那么


您不能在单个查询的不同行中返回不同的列名。您还需要修复SQL注入向量(让我向您介绍)。使用参数化查询,而不是(有效地)字符串连接。欢迎使用堆栈溢出!请拿着(你得到了一枚徽章!)通读一下,尤其是你最好的选择是做你的研究,做相关的主题,然后试一试。如果你在做了更多的研究和搜索后陷入困境,无法摆脱困境,请发布一份你的尝试,并明确指出你陷入困境的地方。人们会很乐意帮忙的。嘿,谢谢你,我会的!代码转储不是有用的答案。说说你做了什么,为什么/怎么做。@Lobster-hmm。。那么,您要查找的是什么?因此,在您的问题中,粘贴您的数据和所需的输出。它仍然会选择两个id,而不仅仅是不等于
u id
的id。我现在只是进入一个for循环,删除id等于
u_id
的键,我认为可以通过更改查询来完成,但我只是在得到结果后修改数组:
for(让chat of chatidleist聊天){chat.messenger_id==u id?delete chat.messenger_id:delete chat.messenged_id;}
  if(res.rows[i].messenger_id==u_id){
          //....
     }else{
          //----
     }