我想一個表的內容複製到另一個,以下列方式的返回類型:什麼是SQL的AVG()函數
sql ="INSERT INTO customer (nev, quantity, frequency) SELECT "
+ "?,COUNT(?),AVG(?)"
+ "FROM tempcustomer GROUP BY ? ORDER BY COUNT(?) DESC";
preparedStmt=conn.prepareStatement(sql);
preparedStmt.setString(1, "nev");
preparedStmt.setString(2, "nev");
preparedStmt.setString(3, "pont");
preparedStmt.setString(4, "nev");
preparedStmt.setString(5, "nev");
preparedStmt.executeUpdate();
我收到以下錯誤信息:
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value: 'pont'
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3971)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2501)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)
at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2079)
at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2013)
at com.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5104)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1998)
at Sample.main(Sample.java:101)
我是JDBC新手,預先感謝!
您不能將列名作爲參數傳遞給查詢。只有值。數據庫需要列名來準備查詢,這是準備好的語句的全部要點。如果數據庫不知道要選擇什麼,要分組或排序什麼,它不可能創建執行計劃。 –
你是對的,它解決了問題謝謝! –