php - MySQL 注册案例
问题描述
我通过注册用户Facebook Login Authentication
并且运行良好。
我存储facebook_id
,facebook_email
和facebook_birthday
. 这是我要运行的查询;
案例 1:如果这个用户有 facebook_id 存在于 MySQL 中,更新 facebook_email 和 facebook_birthday (以防他们改变)
案例 2:如果 MySQL 中不存在此用户的 facebook_id,则插入 facebook_id、facebook_email 和 facebook_birthday
我试过这个但没有发生。提前致谢。
SELECT facebook_id
CASE (SELECT COUNT(*) FROM user_facebook WHERE facebook_id = 123123123)
WHEN 0 THEN INSERT INTO user_facebook (facebook_id) VALUES (1233)
WHEN 1 THEN UPDATE user_facebook SET facebook_email = "123@gmail.com"
ELSE
END
FROM user_facebook
解决方案
您询问的操作称为“合并”或“更新插入”。
假设facebook_id
是主键,或者至少有一个唯一索引,你可以在语句中添加可选ON DUPLICATE KEY UPDATE
子句INSERT
。
INSERT INTO user_facebook
(facebook_id, facebook_email, facebook_birthday)
VALUES (123123123, '123@gmail.com', '1998-05-02')
ON DUPLICATE KEY UPDATE
facebook_email = VALUES(facebook_email)
facebook_birthday = VALUES(facebook_birthday)
如果facebook_id
表中已经存在,则将更新该记录的电子邮件和生日。如果没有,将插入一条新记录。
推荐阅读
- java - M3:如何识别 Java 项目中的语法错误
- viewcontroller - 在 iOS 13 和 Xcode 11 中更改根控制器时出现黑屏动画
- python - 如何使用python stackoverflow将值位置更改为每一个
- python - 有没有办法将具有意图和训练短语的 CSV 文件的定义格式转换为 RASA nlu.md 文件?
- node.js - 如何将 Powershell 命令添加到 NPM 脚本?
- c# - 频道主动消息提醒
- javascript - 我怎样才能只留下 bootstrap.bundle.min.js 中需要的部分代码
- spring - 登录不适用于 UserDetailsService 和自定义登录
- php - 如何使用在 IIS 中运行的 PHP 访问映射的网络驱动器
- c# - 如何解决“无法解析类型'Microsoft.AspNetCore.Identity.UserManager的服务”?