【发布时间】:2020-10-28 15:04:26
【问题描述】:
我的 Node 应用程序中有以下查询:
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_id 或messenged_id,其中id 不等于u_id。
所以,chatIdList 应该是这样的:
[{id: 1, messenger_id: 3}, {id: 2, messenged_id: 5}] // messenger_id != messenged_id != u_id
我可以通过更改查询来实现吗?如果是,您能否提供这样的查询或示例?
【问题讨论】:
-
您不能在单个查询的不同行中返回不同的列名。
-
你还需要修复SQL注入向量(让我给你介绍my friend Bobby)。使用参数化查询,而不是(有效地)字符串连接。
-
欢迎来到 Stack Overflow!请使用tour(你会得到一个徽章!)并通读help center,尤其是How do I ask a good question?你最好的选择是做你的研究,search关于SO的相关主题,然后试一试. 如果您在进行更多研究和搜索后遇到困难并且无法摆脱困境,请发布您的尝试minimal reproducible example,并具体说明您卡在哪里。人们会很乐意提供帮助。
-
嘿,谢谢你,我会的!
标签: javascript mysql sql node.js