mysql数据库插入之前判断数据是否存在?

在这段代码片段中,一个程序员正在维护2 02 2 年某个城市的数据库。
他非常担心,非常恐慌。
他想看看,‘阿飞’这个名字,是不是真的被人用过。
于是他写了一个SQL查询,select count(name) from table where name = "A Fei"。
这个查询有点像在说“阿飞,你在这一桌吗?”然后他加上了if(count>=1 ),心想如果count大于等于1 ,是不是就说明阿飞已经在里面了。

让我看看。
代码中添加了大括号。
看来他很重视这一点。
然后他写道:
如果(数字>=1 ) { //这里不需要写任何代码 } 另一个 { INSERT TABLE(name) VALUES('阿飞');
我当时就很困惑,这是什么意思?后来我才发现,哦,你先看一下,没有的话,那就输入阿飞这个名字吧。

我想这个程序员可能很着急,认为“阿飞”这个名字不能留空。
也可能特定系统需要此名称才能继续操作。
不过,我可能有偏见。

SQL:不存在则 insert, 存在则 update

UPDATE ON DUPLICATE KEY 是最直接的。
主键或唯一索引的 id。
唯一年龄索引与id相同。
ID 和年龄是唯一的并且将会更新。
不要对多个唯一键使用 ON DUPLICATE KEY,因为这会导致问题。
存储过程很灵活,但编写起来比较困难。
WHERE NOT EXISTS 适合简单的查询插入。
REPLACE INTO 删除旧的并插入新的。
REPLACE INTO 将删除数据并且主键序列将被损坏。
根据您的需要选择一种方法。