SQL EXISTS学习笔记

来源:互联网 发布:软件疲劳强度测试 编辑:程序博客网 时间:2024/04/26 11:50

SQL EXISTS学习笔记

最初遇到EXISTS这个函数,是在建表语句里面。

drop table if exists XXX;


下午工作的时候,需要完成:假如数据已经存在数据库的时候,执行更新语句;假如数据不存在,执行插入语句;

假如通过存储过程来完成的话,配合if--else语句,可以实现。大概思路如下:

1. 查看数据是否存在,将得到的数据通过into这个关键字给某个变量赋值。

2. 假如变量和默认值不相同,则数据存在,执行Update操作

3. 假如变量和默认值相同,则数据不存在,执行insert操作

另一种就是和编程语言配合。


比较希望通过存储过程来实现,原因如下:

1. 相对第二种实现方式,减少了数据库与编程语言之间的交互,整个计算过程都在数据库那边执行,效率会比较高。

2. 这段时间刚学习了存储过程,想多尝试

在决定通过存储过程来实现之后,就想如何才能再优化。

在翻百度的时候,遇到了EXISTS这个关键字。用起来刚刚好,通过这个EXISTS,就不需要那个变量了。

如下:

BEGINIF EXISTS (SELECT * FROM rate_list_day) THENSELECT "UPDATE语句";ELSESELECT "INSERT语句";END IF;END



在学习的时候,遇到一个问题:

SELECT * FROM complain_list2    
这个数据表是有数据的


SELECT EXISTS(SELECT * FROM complain_list2)  
# 正常 结果1就代表着数据存在,通过了EXISTS的检验


问题出现了!

SELECT EXISTS(SELECT * FROM complain_list2 LIMIT 0) 
这里面的limit 0使得查不出任何记录,为什么依然还是通过EXISTS的验证得出结果1呢?

这个问题,没搞懂,下次吧,或者哪位网友知道。






0 0
原创粉丝点击