Gostaria de enviar uma consulta MySQL que pode ser descrita como "retornar todos os valores de * se a coluna id corresponder a algum dos valores em alguma matriz x".
Existe alguma maneira de usar todo o conteúdo de uma matriz em uma consulta dessa maneira?
Respostas:
8 para resposta № 1var ids = [3, 4, 6, 8];
var query = "SELECT * FROM table WHERE id IN (" + ids.join() + ")";
Agora query
contém uma consulta que retornará todas as linhas com id que correspondam a qualquer valor em ids
array.
Com pacote mysql você pode emitir essa consulta assim:
var mysql = require("mysql");
var connection = mysql.createConnection({
host : "localhost",
user : "admin",
password : "password"
});
// construct query
var ids = [3, 4, 6, 8];
var query = "SELECT * FROM table WHERE id IN (" + ids.join() + ")";
connection.connect();
connection.query(query, function(err, rows, fields) {
if (err) throw err;
console.log(rows) // log all matching rows.
});
0 para resposta № 2
Você pode usar o implode
função em PHP para pegar uma matriz e transformá-la em uma string separada por vírgulas como esta:
"SELECIONE DE
users
WHERE user_id IN (". Implode (", ", $ array_of_user_ids). ")"
Isto está assumindo que sua matriz se parece $array_of_user_ids = array(1, 2, 3, 4, ...)
.
EDIT: Minhas desculpas, eu não vi a parte sobre este ser um array JavaScript. Adshi tem a sua resposta.