- insert into "user"( display_name, telephone, address, username, "password")select '王凯歌', null, null, 'wangkaige', '$2a$10$i2Wwn3AFp8t'where not exists( select id from "user" where username ='wangkaige' and delete_flag = false );
复制代码 该句分两个段落举行剖析:
第一个段落为:
- select '王凯歌', null, null, 'wangkaige', '$2a$10$i2Wwn3AFp8t'where not exists( select id from "user" where username ='wangkaige' and delete_flag = false )
复制代码 where子句后跟的是一段判定表达式,如当我们执行
- select * from "user" where true-- 或 select * from "user" where 1=1
复制代码 时,将恒创建地查询所有的数据。
- not exists( select id from "user" where username ='wangkaige' and delete_flag = false )
复制代码 这段代码判定的是是否存在一个username='wangkaige'而且未被删除的记载。当不存在时,将返回空缺记载,因此not exists判定乐成。这个时候sql片断
- select '王凯歌', null, null, 'wangkaige', '$2a$10$i2Wwn3AFp8t'where not exists( select id from "user" where username ='wangkaige' and delete_flag = false )
复制代码 将返回一行记载
?column??column??column??column??column?王凯歌nullnullwangkaige$2a$10$i2Wwn3AFp8t这行记载的值将作为insert语句values添加到库中去。这里的表头不消关心,不要紧的。
当原来查询的记载存在时,自行脑补一下。
第二个段落
第二个段落就是insert语句段落了,再粘一遍
- insert into "user"( display_name, telephone, address, username, "password")select '王凯歌', null, null, 'wangkaige', '$2a$10$i2Wwn3AFp8t'where not exists( select id from "user" where username ='wangkaige' and delete_flag = false );
复制代码 来源:https://blog.csdn.net/shangcunshanfu/article/details/112075501
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |