检查我的MySQL数据库[Node.js]中是否存在数组中的一个单词



代码:

// Get message from chat and replace characters.
const messageReplaced = m.message.conversation.replace(/[^a-z0-9À-ú]/gi, ' ')
// Split Text using empty space
function splitStr(str, separator) {
// Function to split string
const string = str.split(separator);
console.log(string);
}
// Initialize string
const str = messageReplaced
const separator = " ";
// Function call
splitStr(str, separator);

我的输出:

['1', '2', '3', '4', '5', '6', '7']

根据输出,我需要使用查询逐一检查每个数组(string[0],string[1],…(是否存在于数据库中的项目中,如下所示:

SELECT * FROM contacts WHERE id = (string[0], string[1], ...)

我试过那样的事,但没有成功

var i = 0; i < check.length; i++

splitStr()应该返回数组,而不是记录它。虽然不清楚为什么需要这个函数,因为它与调用split()完全相同。

制作一个包含与string数组中的值一样多的?占位符的字符串,然后在准备好的语句中使用它。

let ids = messageReplaced.split(' ').map(Number);
let placeholders = Array(ids.length).fill('?').join(',');
let query = `SELECT * FROM contacts WHERE id IN (${placeholders})`;
connection.query(query, ids, function(res, err) {
if (err) {
// report error
} else {
console.log(res);
}
});