PHP/sqldon';如果存在两个值,则不插入

PHP/sqldon';如果存在两个值,则不插入,php,sql,Php,Sql,我只想在没有“姓名”和“电子邮件”同时存在的条目时插入 因此,如果“name”与不同的电子邮件一起存在,也没关系,反之亦然 mysql_query("INSERT INTO list (name,email) VALUES ('$name','$email') "); 我希望在一个SQL语句中实现这一点,以获得更好的性能。将主键作为一对(名称,电子邮件)。将主键作为一对(名称,电子邮件)。将两列(名称,电子邮件)作为复合主键,并在重复密钥更新时使用,以防止php错误。将两列(名称,电子邮件)作

我只想在没有“姓名”和“电子邮件”同时存在的条目时插入

因此,如果“name”与不同的电子邮件一起存在,也没关系,反之亦然

mysql_query("INSERT INTO list (name,email) VALUES ('$name','$email') ");

我希望在一个SQL语句中实现这一点,以获得更好的性能。

将主键作为一对(名称,电子邮件)。

将主键作为一对(名称,电子邮件)。

将两列(名称,电子邮件)作为复合主键,并在重复密钥更新时使用,以防止php错误。

将两列(名称,电子邮件)作为一对作为复合主键,并在重复键更新时使用以防止php错误。

如果无法将[name,email]作为主键,请将其设置为唯一约束。这样就不会插入两个值都匹配的记录。

如果无法将[name,email]作为主键,请将其设置为唯一约束。这样就不会插入两个值都匹配的记录。

在名称和电子邮件上有主键,然后执行以下操作:

替换为列表(名称、电子邮件)值(“$name”和“$email”)


“替换”与“插入”相同,除非值已存在,否则将覆盖它们。

在“名称”和“电子邮件”上有主键,然后执行以下操作:

替换为列表(名称、电子邮件)值(“$name”和“$email”)


replace与insert相同,除非值已经存在,否则它将覆盖它们。

这是针对mysql还是mssql的?简单的解决方案是使用组合主键来禁止插入相同的条目组合。缺点是在执行代码时会出现php错误,除非将其放入try-catch中,但有时甚至会出现错误。让我知道,如果是mssql或mysql,我将向您展示一个很酷的技巧,在一个快照中完成这项工作。这是用于mysql还是mssql?简单的解决方案是使用组合主键来禁止插入相同的条目组合。缺点是在执行代码时会出现php错误,除非将其放入try-catch中,但有时甚至会出现错误。让我知道,如果是mssql或mysql,我将向您展示一个很酷的技巧,在一个快照中完成它。我认为,这只适用于mysql。我试了一下,发现了一个错误:#1071-指定的密钥太长;最大密钥长度为1000字节您的姓名和电子邮件字段有多大?我缩短了电子邮件字段,从而停止了该错误。我想这只适用于MySQL。我试了一下,发现了一个错误:#1071-指定的密钥太长;最大密钥长度为1000字节您的姓名和电子邮件字段有多大?我缩短了电子邮件字段,从而停止了该错误我已将两列都设置为主键并使用此查询,但它只是作为普通mysql_查询插入(“插入到列表(姓名,电子邮件)值(“$name”,“$email”)上的重复密钥更新名称=“$name”,“email=”$email');我制作了两列主键并使用了此查询,但它只是作为普通的mysql_查询插入(“在重复键更新名称上插入到列表(名称,电子邮件)值(“$name”,“$email”)中=“$name”,“email=”$email”);