Это не поддерживается (если не записано в самой базе данных - например, t sql, pl sql или другие). Что вы можете сделать - это выполнить запрос, дождаться его результатов и затем выполнить другой соответственно. пример:
const query1 = '.....';
connection.query(query1, [...params1], function(err, results) {
if (err) throw err;
const query2 = condition ? '....' : '........';
connection.query(query2, [...params2], ......);
});
и т. д. и т. д. (ад обратного вызова).
Вы можете сделать это немного лучше (я предполагаю, что соединение: mysql .getConnection и правильно установил без ошибок там). params<X>
- массив с параметрами для запроса.
const executeQuery = async (con, query, params) {
return new Promise((resolve, reject) => {
con.query(query, params, (err, result) => {
if (err) { return reject(err); }
return resolve(result);
});
});
}
mysql.getConnection((err, connection) => {
if (err) { throw err; }
try {
const query1 = '<some query>';
const result1 = await executeQuery(query1, params1);
const query2 = (condition on query1) ? '<query>' : '<other query>';
const result2 = await executeQuery(connection, query2, params2);
const query3 = (condition you want) ? '<query for that condition>' : '<or not>';
const result3 = await executeQuery(connection, query3, params3);
} catch (err) {
connection.release();
throw err;
} // if newest node you can use finally block and have only one connection.release();
connection.release();
}