簡體   English   中英

創建動態更新sql查詢

[英]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列下,因為它們各自的變量為空。

任何建議請! 謝謝

您可以創建一個函數來生成查詢。 只需發送您需要的參數: datacolumn

 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM