MySQL Node.js Конец запроса, обратного вызова нет - PullRequest
0 голосов
/ 23 марта 2020

Я использую mysql для node.js.

Этот запрос проверяет, содержит ли столбец все значения NULL, проверяя, является ли хотя бы одна строка NULL.

SELECT 1 FROM `table` WHERE `column` IS NOT NULL LIMIT 1

Если в столбце есть все значения NULL, этот запрос заканчивается в списке процессов SQL через несколько секунд (~ 120), но я никогда не получаю обратный вызов из кода js:

import {createPool as mysqlCreatePool, MysqlError} from 'mysql';

const db = mysqlCreatePool({...})

const query = db.query(sql, undefined, function (err: MysqlError | null, res?: any) {
  console.log(err, res);
});

query.on('end', () => console.log("end"));

(в консоли ничего не печатается)

1 Ответ

0 голосов
/ 24 марта 2020

Может не быть таким же подходом, но даст вам ответ, который, я думаю, вам нужен, и всегда вернет результат.

Запросите count вместо фиксированного значения и используйте IS NULL чем IS NOT NULL:

SELECT count(*) AS null_count FROM `table` WHERE `column` IS NULL;

Если ваш ответ 0, каждая запись имеет значение для этого столбца. Если ваш ответ превышает 0, у вас есть столько записей со значением NULL в этом столбце.

...