INSERT INTO users (firstname, lastname, email, mobile) VALUES ('Karem', 'Parem', 'mail@mail.com', '123456789');
这是我想要做的,但是如果具有相同电子邮件 mail@mail.com
的行已经存在,那么它应该使用这些值更新该行。
我找到了 http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html 但我不明白
最佳答案
使用 ALTER TABLE 在 email
列上添加一个唯一约束,然后尝试这个查询:
INSERT INTO users(firstname, lastname, email, mobile)
VALUES ('Karem', 'Parem', 'mail@mail.com', '123456789')
ON DUPLICATE KEY UPDATE
firstname = 'Karem',
lastname = 'Parem',
email = 'mail@mail.com', -- you can probably omit this
mobile = '123456789'
不过要小心 - 如果您在表上定义了任何其他唯一键(包括主键,根据定义是唯一的),那么它们也可以触发更新。
关于mysql - 插入,如果它已经存在更新列 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7888445/