php – 如果不存在不同的结果,则INSERT到表中
发布时间:2020-12-13 17:12:22 所属栏目:PHP教程 来源:网络整理
导读:我有这样的’用户’SQL表结构(ID是随机生成的,不是自动递增的): ID name deleted lastActive3242 Joe 0 20-6-2012 23:142234 Dave 0 20-6-2012 23:132342 Simon 1 20-6-2012 23:029432 Joe 1 20-6-2012 22:58 可以有多个具有相同名称的已删除(已删除= 1)用
我有这样的’用户’SQL表结构(ID是随机生成的,不是自动递增的):
ID name deleted lastActive 3242 Joe 0 20-6-2012 23:14 2234 Dave 0 20-6-2012 23:13 2342 Simon 1 20-6-2012 23:02 9432 Joe 1 20-6-2012 22:58 可以有多个具有相同名称的已删除(已删除= 1)用户,但只有1个具有相同名称的未删除用户(因此添加Simon很好,但Dave不是).如果在一个SQL查询中没有已经具有相同名称且已删除= 0的记录,我该如何插入?我需要这样的东西: INSERT INTO users (ID,name) VALUES ($id,$name) WHERE NOT EXISTS (SELECT 1 FROM users WHERE name = $name AND deleted = 0) 但这不是正确的语法. 解决方法
设置LEFT JOIN
>子查询A,其中包含别名为ID的随机数和名称别名的$name. 这是查询 INSERT INTO users (ID,name) SELECT A.* FROM (SELECT RAND() ID,'$name' name) A LEFT JOIN (SELECT name FROM users WHERE name='$name' AND deleted=0) B USING (name) WHERE B.name IS NULL; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |