sql复制表数据并修改某些列的值

MySQL将一张表的某些列数据,复制到另外一张表

INSERT INTO t_topic_content(content,topicId) SELECT content,id FROM t_topic;

注意:给某一列数据赋值,自增长,那么就不应该插入数据了


MySQL将一张表的某些列数据,复制到另外一张表,并且修改某些内容。方法同上, 只是查询的时候使用REPLACE(str,from_str,to_str) 函数

INSERT INTO t_topic_content(content,topicId)
  SELECT REPLACE(content, 'aa', 'bb'),id FROM t_topic
 
  Replace("字符串","要被替代的字符串","替代后的字符串")
 

已验证示例:

String sql = "insert into t_table(id,name,age,sex,address,tel) "
                + "select ?,?,?,?,address,replace(tel,'110',?) from t_table where id=?";

        conn.setAutoCommit(false);
        PreparedStatement ps = conn.prepareStatement(sql);
        try {
            for (int i = 0; i < ids.length; i++) {
                    ps.setString(1, "new id");
                    ps.setString(2, "lucy");
                    ps.setString(3, "15");
                    ps.setString(4, "女");
                    ps.setString(5, "号码错误!");
                    ps.setString(6, ids[i]);
                    ps.addBatch();
               
            }
            ps.executeBatch();
            conn.commit();
        } catch (Exception e) {
            conn.rollback();
            e.printStackTrace();
        } finally {
            conn.setAutoCommit(true);
        }

你可能感兴趣的:(database)