Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何通过比较多列更新mysql记录_Php_Mysql - Fatal编程技术网

Php 如何通过比较多列更新mysql记录

Php 如何通过比较多列更新mysql记录,php,mysql,Php,Mysql,实际上,在比较两个mysql表和多列时,我需要更新mysql记录,如果记录不存在,应该作为新记录插入。我怎样才能做到呢?下面是我的情景。提前谢谢 表1: Name | Age | occupation | DOJ | Salary | ---------------------------------------------------------------- Raju | 27 | Manager | 12/12/12 | 12,000 --------------

实际上,在比较两个mysql表和多列时,我需要更新mysql记录,如果记录不存在,应该作为新记录插入。我怎样才能做到呢?下面是我的情景。提前谢谢

表1:

Name   | Age   | occupation    | DOJ    | Salary   |
----------------------------------------------------------------
Raju  | 27 | Manager | 12/12/12 | 12,000
--------------------------------------
Raman  | 30 | Director | 11/11/11 | 14,000
-
Sriram  | 25 | Assistant | 10/10/10 | 10,000
-
表2:

Name   | Age   | occupation    | DOJ    | Salary   |
----------------------------------------------------------------
Raju  | 27 | Manager | 12/12/12 | 12,000
--------------------------------------
Raman  | 30 | Director | 8/8/8 | 18,000
-
Ravi  | 34 | CEO | 9/9/9 | 30,000
-
我有一个excel,上面有一堆具有上述结构的记录,我需要将这些记录上载到临时tabletemp_表中,然后将该表与主tablemain_表进行比较,无论是否存在任何记录,如果存在任何更新,需要在主_表上进行更新,否则将其作为新记录插入主_表中


谢谢。

您可以编写一个选择,当且仅当给定名称存在时,该选择将返回1。然后,您可以将其用作另一个选择的子查询,该选择将否定该存在,以查找应该插入的内容。最后,您可以将第二个选择用于“插入选择”:


您需要在表1和表2中创建一个关于姓名、年龄、职业、司法部和工资的唯一索引。然后您可以整天在表1中插入忽略并从表2中选择*。或者“替换到表2中,从表1中选择*”,如果您想更新内容。您的问题不清楚。您将在何处插入?您将在何处更新?为什么Raman表1与Raman表2不同?向我们显示数据库模式、示例数据和预期输出。请阅读,这里是一个学习如何提高问题质量和获得更好答案的好地方。@JuanCarlosOropeza的可能重复我已经解释了足够的信息,如表格的结构,当你询问模式时,还有样本数据。如果你问为什么表1拉曼与表2拉曼不同,那就是我需要更新它。例如,你想让我解释一下事件发生的时间还是事件发生的那天?我告诉过你,我的解释很糟糕。记住,我不知道你有什么问题。这就是为什么我建议这些链接帮助你提出更好的问题,你是感兴趣的一方,你应该努力解释问题,让每个人都能理解。不确定是否要合并两个表,请尝试在两个表上进行双重插入,这样我就不会浪费时间去猜测您的意思。
insert into Table2(Name, Age, Occupation, Doj, Salary)
select Name, Age, Occupation, Doj, Salary
from Table1 t2 where not exists (select 1
                              from Table2 t
                              where t.Name = t2.Name)