插入选择的特定列中

时间:2019-11-16 13:06:45

标签: java mysql jdbc

如何(插入到select中)并使WHERE用于插入而不是select?我想在student_id =?处插入值不要选择student_id =?

            String aa=model.getValueAt(index, 0).toString();;
            String sql="INSERT INTO evaluation (rank) Select Rank from evaluation Where student_id=?";
            try {
                PreparedStatement ps1=con.prepareStatement(sql);
                ps1.setString(1, aa);
                if(ps1.executeUpdate() > 0)
                {


                    JOptionPane.showMessageDialog(null, "Evaluation Done");
                }


            }
             catch (Exception ee) {
                e1.printStackTrace();
                }

2 个答案:

答案 0 :(得分:0)

INSERT INTO ... SELECT ...语句的语法如下:

INSERT INTO table2 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table1
WHERE condition;

例如

INSERT INTO Customers (CustomerName, City, Country)
SELECT SupplierName, City, Country FROM Suppliers
WHERE Country='Germany';

如您所见,WHERE条件适用于SELECT(即上面给出的示例中的Suppliers),并且没有办法使其适用于{{1} }(即上面示例中的INSERT)。

答案 1 :(得分:0)

您不能插入现有行。根据定义,INSERT创建新行。如果要更改现有行,请使用UPDATE,而不要使用INSERT。