我在JavaScript中遇到以下SQL查询的问题。
让查询='从客户ID = 1和CustomerName =&name和CustomerAdd = && address和Salary = ^ salary的客户那里选择* *'
实际上,我必须找出所有带有特殊字符(如&,&&,^符号)作为前缀的动态变量。
一旦找到动态变量,就需要找到相应的列名。 示例:对于&name列名是Custoername, &&地址列为CustomerAdd。
我能够使用比赛的正则表达式找到特殊字符的单词。但是如何在javascript中找到其对应的列名称。我不知道。
请提出一些建议,如果需要更多说明,请告诉我。
答案 0 :(得分:1)
我们可以在您的SQL查询字符串上使用一个正则表达式来查找所有具有相应列名的占位符。
var regex = /(\S+)\s*=\s*(&&|&|\^)\s*(\S+)/g;
var sql = 'SELECT * FROM Customers WHERE CustomerID = 1 And CustomerName=&name And CustomerAdd = &&address And Salary =^salary;';
var m;
do {
m = regex.exec(sql);
if (m) {
console.log(m[1] + ' ' + m[2] + ' ' + m[3]);
}
} while (m);