另一个cnblogs博客 常用汇总

mysql若不存在则插入写法

最开始想到的办法是先SELECT * FROM table WHERE f1='d1',然后判断之后插入

优化方法 * 可以改为随便一个数字 比如1,然后因为f1不是唯一字段,所以最后在家LIMIT 1

后来听说可以用NOT EXIST来判断,当然了不能直接用INSERT INTO … NOT EXIST (SELECT * FROM table WHERE f1='d1')这样写,参考下面:

1
2
3
INSERT INTO `table` (value1, value2)
    SELECT 'stuff for value1', 'stuff for value2' FROM DUAL
    WHERE NOT EXISTS (SELECT * FROM `table` WHERE value1='stuff for value1' AND value2='stuff for value2')

因为EXIST只判断存在不存在,用*还是什么以及LIMIT 1,MYSQL都会无视的,直接按最佳优化执行的。

再后来才知道INSERT IGNORE INTO代替INSERT INTO

posted on   webkb  阅读(763)  评论(0编辑  收藏  举报

编辑推荐:
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
阅读排行:
· “你见过凌晨四点的洛杉矶吗?”--《我们为什么要睡觉》
· 一款 .NET 开源、功能强大的远程连接管理工具,支持 RDP、VNC、SSH 等多种主流协议!
· 提示词工程师自白:我如何用一个技巧解放自己的生产力
· C# 从零开始使用Layui.Wpf库开发WPF客户端
· C#/.NET/.NET Core技术前沿周刊 | 第 31 期(2025年3.17-3.23)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示