mysql非存储过程中能用where not exists判断吗
发布网友
发布时间:2022-10-13 23:31
我来回答
共1个回答
热心网友
时间:2023-11-18 01:46
答案是肯定的。
下面举个例子供参考,sql语句列出没有选读课程号为008的学生名单:
select a.* from students a
where not exists (select 1 from sc b
where b.sid=a.sid and b.cid='008');
补充回答:
请注意,SQL追加查询方式 "insert into ... values ... "是不允许使用 where 子句的。
那么不借助存储过程,如何做到在插入一条记录时先判断某些记录存在与否,只在不存在时才插入呢? 这是可以做到的,我们可以借助查询追加方式"insert into ...select ..."来实现这个需求,但是我们需要做些变通,具体请 参考下列例句。
insert into code_value(`code`,`value`,type,source)
select '1','1','1',2 from code_value
where not exists
(select 1 from code_value where code='331' and type='AcceptPaymentType'
and source=2) limit 1;
注意,语句最后要加上 limit 1 以防止重复追加多条记录,这点很重要!