gpt4 book ai didi

javascript - Node.js MySQL 查询执行流程

转载 作者:行者123 更新时间:2023-11-29 00:25:18 24 4
gpt4 key购买 nike

如果我有一个 MySQL 查询返回一个值,该值将在 WHERE 子句中再次使用,这是否适用于 Node.js 的异步执行流程?

通常情况可能是这样的:

SELECT
customerId FROM Customers
WHERE customerName=nikolas

然后结果会这样存储:

var customerId = customerId

并在另一个查询中重用:

SELECT
orderId FROM Orders
WHERE customerId=customerId

这会为我获取在第一个查询中返回的客户 NikolasorderId 吗?

书面查询会按顺序运行吗?

最佳答案

这实际上取决于您使用的模块。最常用的驱动程序之一,node-mysql , 是异步的,因此代码不会按顺序运行。相反,您必须使用回调:

var query1 = 'SELECT customerId FROM Customers WHERE customerName = nikolas';
var query2 = 'SELECT orderId FROM Orders WHERE customerId = ';

connection.connect();
connection.query(query1, function(err, rows, fields) {
var customerId = rows[0].customerId;
connection.query(query2 + customerId, function(err, rows, fields) {
connection.end();
// results are here
});
});

在 Node.js 中,您通常希望编写异步代码。某处可能有一个同步 MySQL 驱动程序模块,但大多数情况下他们都不想通过同步数据库调用来阻止他们的进程。

关于javascript - Node.js MySQL 查询执行流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19215424/

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