小编典典

是否可以使用行号和列号进行SQL更新?

sql

我正在使用jquery datables /jedtiable,它传递回ROW和COLUMN号以及要更新的新值,如下所示。这是POST到另一个JSP页面的,该页面具有到sqlite
DB的JDBC连接。

注意:我不想指定列名,只需指定一个数字,该数字基于另一页上的int POST’ed。希望这可以使我的问题更清楚

行,值,列

2号4号

什么是将“ No”更新为第2行第4列的SQL?

更新 __ * * *

当前正在使用rowid,但是我仍然希望能够按列使用列。

     String value = request.getParameter("value");
     String row = request.getParameter("row_id");
     String column = request.getParameter("column");

UPDATE PROJECT SET DELIVERY_STREAM ='"+value+"' WHERE rowid = "+rowId+";

阅读 182

收藏
2021-04-14

共1个答案

小编典典

所有SQL命令都需要列 ,而不是数字。

此外,SQL表没有固有的顺序,在这种顺序中行号才有意义。记录只能通过某些唯一的字段值来标识。

因此,严格来说,您的问题的答案是“否”。


要按数字访问列,您需要知道哪一列具有哪个数字,以便可以将数字映射回相应的名称:

String[] columnNames = new String[] {
    "NAME", "DELIVERY_STREAM", "NUMBER_OF_FEET", "RETICULATED", ...
};
int columnNumber = ...;

String sql = "UPDATE Project SET " + columnNames[columnNumber] + " = ? WHERE ...";

从行号到实际记录的映射将要求您将带有这些记录的键值的数组存储在某个地方,但这在使用多个JSP页面时不可行。代替行号,只需使用原始表中的某些键值(主键或SQLite的rowid)来标识记录;这就是键的作用。

2021-04-14