我有一份人员及其信息,名字,姓氏,电子邮件,电话等列表....
无论出于何种原因,当我的同事将此列表导入数据库时,他并没有让所有人都在那里。现在,我需要让500名没有进入系统的人参与进来。我认为最快的方法是做一些类似“如果还没有'foobar'的电话号码就插入这个人。”
有没有办法在MySQL中执行此操作?我试过这样做:
if not exists(Select 1 from <My Table Name> where phone = '1234567890')
Begin
<Code to insert new person>
End
但MySQL告诉我有一个错误:
您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在“IF not exists(SELECT 1 FROM WHERE pphone ='1234567890',第1行)附近使用正确的语法
答案 0 :(得分:1)
只需使用insert ignore
或insert on duplicate key update
即可。这是一个例子:
insert into <my table name>(phone, . . . )
Select '1234567890', . . .
on duplicate key update phone = phone;
on duplicate key update
子句不执行任何操作,但insert
不会返回错误。
编辑:
好的,上述情况不起作用,因为您无法宣布电话号码是重复的。相反,你可以这样做:
insert into <my table name>(phone, . . . )
Select '1234567890', . . .
from dual
where not exists(Select 1 from <My Table Name> where phone = '1234567890');