“在哪里在MySQL查询在nodejs

我需要使用“WHERE IN”进行MySQL查询。 这是我的查询:

var myQuery = 'SELECT uid FROM ' +tableName+ ' where Gender IN (' + Info.Gender.join() + ')'; 

如果我打印Info.Gender ,它将作为一个string['Male','Female']。 但是当查询完成它说

 SELECT uid FROM appUsers where Gender IN (Male, Female) 

但应该是:

 SELECT uid FROM appUsers where Gender IN ('Male', 'Female') 

这意味着需要女性不是一个string。

有任何想法吗?

您应该使用查询转义 (假设您正在使用node-mysql ):

 var myQuery = 'SELECT uid FROM ?? where Gender IN (?)'; connection.query(myQuery, [ tableName, Info.Gender ], ...); 

你的查询中需要单引号:

 var myQuery = "SELECT uid FROM " +tableName+ " where Gender IN ('" + Info.Gender.join("','") + "')"; 
Interesting Posts