[英]create dynamic update sql query
我的問題是,當沒有可用值更新列時,我不想更新列。 我知道如何在sql中執行此操作,但想要在Java腳本中執行此操作。
我有一些變量,每個變量僅屬於需要存儲或更新的特定列。
Variable Names Column Names
context.one First
context.two Second
context.three Third
假設我僅在context中具有值。one和其他為空或為null。
我想創建動態更新sql查詢。
例如:
Update TableName
Set "column name whose relevant variable is having value" = variable name
Where ID = 100
其他列不應位於set列下,因為它們各自的變量為空。
任何建議請! 謝謝
您可以創建一個函數來生成查詢。 只需發送您需要的參數: data
和column
var context = { "one": "Data1", "two": "", "three": null } var columns = { "one": "First", "two": "Second", "three": "Third" } //Iterate each keys of context object Object.keys(context).forEach(function(key) { generateUpdateQuery(context[key], columns[key]); }); function generateUpdateQuery(variableName, column){ if(variableName === null || variableName === "") return; var query = "UPDATE table_name SET " + column + "='" + variableName + "' WHERE ID = 100;" console.log(query); }
修改后的Weedoze函數可以回答有關如何創建多列更新查詢的問題。
var context = { "one": "Data1", "two": "Data2", "three": null, "four": "Data4" } var columns = { "one": "First", "two": "Second", "three": "Third", "four": "Four" } var query = "UPDATE table_name SET "; Object.keys(context).forEach(function(key) { if(!(context[key] === null || context[key] === "")) query += columns[key] + "='" + context[key] + "',"; }); query += " WHERE ID = 100"; //replace last comma from query var n = query.lastIndexOf(","); query = query.slice(0, n) + query.slice(n).replace(",", ""); console.log(query);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.