Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用数组创建SQL查询的Javascript字符串插值_Javascript_Sql_Arrays_Postgresql_String Interpolation - Fatal编程技术网

使用数组创建SQL查询的Javascript字符串插值

使用数组创建SQL查询的Javascript字符串插值,javascript,sql,arrays,postgresql,string-interpolation,Javascript,Sql,Arrays,Postgresql,String Interpolation,我想创建一个SQL查询来选择值位于字符串数组中的所有记录。 假设我有以下数组 myarray=['a','b','c'] 我想用它来构造这样的查询 从Mycl所在的my_表中选择*('a','b','c') 常规字符串插值显然不适用于此。我甚至尝试过,但显然它不支持在何处 有没有在SQL查询中使用数组的好方法 let sql = `SELECT * FROM my_table WHERE mycol IN ('${ myarray.join("','") }');` 此外,如果要删除空值: l

我想创建一个SQL查询来选择值位于字符串数组中的所有记录。 假设我有以下数组

myarray=['a','b','c']

我想用它来构造这样的查询

从Mycl所在的my_表中选择*('a','b','c')

常规字符串插值显然不适用于此。我甚至尝试过,但显然它不支持在何处

有没有在SQL查询中使用数组的好方法

let sql = `SELECT * FROM my_table WHERE mycol IN ('${ myarray.join("','") }');`
此外,如果要删除空值:

let myarray = ['a', 'b', null, 'c']
let sql = `SELECT * FROM my_table WHERE mycol IN ('${ 
myarray.filter(function (el) {
  return el != null;
}).join("','")
 }');`
==>

“从my_表中选择*,其中mycl位于('a','b','c');”

此外,为了避免sql注入,您应该首先将myarray映射到一个数组,其中“已被替换为”

.ie


谢谢。这确实有效。我很惊讶没有找到更优雅的方式来做这件事。。鉴于这是一个标准用例。
let myarray = ['a', 'b', null, 'c', "d'Alambert"]
.filter(function (el) { return el != null; })
.map(function(el){ return el.replace(/'/g, "''");}); 

let sql = `SELECT * FROM my_table WHERE mycol IN ('${ myarray.join("','") }');`