繁体   English   中英

用另一个表MySQL中的相应值更新多行

[英]Update multiple rows with corresponding values from another table MySQL

使用MySQL,我正在研究一个脚本,该脚本将从CSV文件导入数据。 我已经到了脚本完成的位置,可以为单个用户导入数据,但是现在我想扩展到所有用户。 我目前的陈述如下:

UPDATE werte 
    SET werte=(SELECT Date_Enrollment 
               FROM THKON01.data 
               WHERE auto_patient_id = 1020)
    WHERE folder_id = 1525 
    AND number=4;

现在,我想要的是使用所有用户的注册日期(因此,我将省略“ WHERE auto_ Patient_id ...”语句),并将其插入所有对应的行中。 问题就在这里。 我用这个语句一次尝试了两个用户

UPDATE werte 
    SET werte=(SELECT Date_Enrollment 
               FROM THKON01.data 
               WHERE auto_patient_id = 1020
                   OR auto_patient_id = 1051)
    WHERE folder_id between 1524 AND 1525 
    AND number=4;

但是,这给了我一个错误,该错误表示“查询返回多行”,是指SELECT Date_Enrollment的内部查询。 请注意,auto_patient_id并未按顺序编号,因此我不能在其中使用“之间”。

编辑:为澄清

我有两张桌子。 werte是我想要将值存储到的位置。 THKON01.data是我要从中读取值的表。 在此示例的情况下,我希望将Date_Enrollment值写入werte表。 假设我有3个用户想要这样做,那么THKON01.data的结构如下所示:

auto_patient_id    Date_Enrollment
1020               01.01.1911
1050               02.01.1912
1073               03.01.1913
...                ...

现在,我要将其插入如下所示的werte表中:

folder_id    werte
1525         <empty>
1526         <empty>
1527         <empty>
...          ...

我希望插入它们,以便将THKON01.data(01.01.1911)的第一个值复制到werte(folder_id 1525的字段)中的第一个值,将第二个(02.01.1912)复制到第二个(folder_id 1526)等等。 Folder_id按顺序编号,auto_ Patient_id则没有编号。 我希望这可以澄清一下。

如果您在字段auto_patient_idfolder_id之间有一些链接,则可以尝试这样的操作

UPDATE werte 
SET werte=(SELECT Date_Enrollment 
           FROM THKON01.data 
           WHERE (your_link))
WHERE number=4;

这里your_link可以是THKON01.data.auto_patient_id = werte.somefieldTHKON01.data.auto_patient_id = somefunction(werte.folder_id)

它将一次只选择一个记录,并更新属于外部where条件的所有记录。

更新

如果您想使用一些bash脚本,则可以使用smth这样的

$folder_id = 1 # or some other start number
mysql -e "SELECT Date_Enrollment FROM THKON01.data" | while read Date_Enrollment; do
   mysql -e "update werte set werte = $Date_Enrollment where folder_id = $folder_id"
   $folder_id = $folder_id + 1
done

您说您的文件夹ID是有序的,因此我们每次只能添加1,而不是从结果中获取它们。

我绝对不精通bash脚本编写,因此该脚本可能无法正常工作,但我希望这个想法很明确。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM