繁体   English   中英

Mysql INSERT IGNORE INTO只忽略一列

[英]Mysql INSERT IGNORE INTO ignore only one column

我在网站上使用了以下sql

$sql = "INSERT IGNORE INTO names VALUES ('akku@gmail.com','19','akku');";

仅当三个值相同时,此代码才有效。 只有在数据库中不存在第一个值(akku@gmail.com)时,我才需要将数据插入数据库。 否则它应该显示“电子邮件已经存在”。 即使第二个和第三个值不同,它也应该起作用。

将电子邮件地址设为表格的主键。 不要在语句中使用IGNORE关键字。 捕获输入重复电子邮件时出现的错误(尝试将重复电子邮件插入MySQL将在您的前端代码中引起异常)并显示“电子邮件已存在”消息

该数据库不在乎您的值是什么,所以我真的不明白您的意思是“它仅在后两个相同时才起作用”,除非您有一个触发器,如果​​您尝试为该表插入不同的值,则会引发错误。您的最后两列

您可以先使用SELECT查找数据是否存在,然后插入(如果没有)或更新(如果有)。 这将是最好的方法,因为您可以使用php处理任何使用此方法的情况。

第二种方法是使第一个值为主键。 这样,插入将引发错误,并且您可以捕获该错误以执行所需的任何操作。

第三种方式,如果要更新数据(如果存在的话),将使用- INSERT ON DUPLICATE KEY UPDATE https://mariadb.com/kb/en/library/insert-on-duplicate-key-update/

暂无
暂无

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

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