首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql:复制表中的一些行,在复制的表中更改信息

mysql:复制表中的一些行,在复制的表中更改信息
EN

Stack Overflow用户
提问于 2013-12-03 19:12:10
回答 2查看 48关注 0票数 0

我一直在this post工作,但我无法找到一个合适的解决方案来解决我必须做的事情,接下来就是:我有以下几个对应的方法:

代码语言:javascript
复制
subject1 = subjectA
subject2 = subjectB
subject3 = subjectC

然后我有一个csv文件和下一个数据:

代码语言:javascript
复制
hour,subject,teacher,room
10-11,subject1,teacher1,room1
11-12,subject2,teacher2,room1
09-11,subject3,teacher3,room2
10-11,subject4,teacher2,room3

然后我将这个csv导出到mysql,所以我需要做的是

代码语言:javascript
复制
duplicate row where subject like "subject1" and replace "subject1" by "subjectA";

对于subject2,subject3也是这样,当我说“替换”时,我指的是文本字符串"subject1“为文本字符串"subjectA”。

我希望我能说清楚,非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-04 13:18:36

由于我无法像mysql那样以shell-script的方式上传csv文件,所以我通过web接口上传csv文件,其中场景后面有一个脚本将它发送到mysql,所以我做了一个预处理,修改了csv文件,然后将它发送到mysql-服务器,所以这是我在文件开始时添加的行(S):

代码语言:javascript
复制
<?php
$file=$_POST['file'];

system("sed -i -r 's/^(.*)(Original Subject)(.*)$/\\1\\2\\3\\n\\1New Subject\\3/g' $file");

.....

所以我用两行代替原来的,原来的加上新的.

票数 0
EN

Stack Overflow用户

发布于 2013-12-03 19:48:33

只需选择数据不变的列(小时、教师等)以及要替换数据更改位置的字符串(subjectA)。请注意,"subjectA“被引号包围。

代码语言:javascript
复制
INSERT INTO 
    `your_table` 
    (`hour`, `subject`, `teacher`, `room`) 
        SELECT 
            `hour`, 'subjectA', `teacher`, `room` 
        FROM 
            `your_table` 
        WHERE 
            `subject` = 'subject1'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20359632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档