【发布时间】:2016-05-21 17:30:54
【问题描述】:
如何在存储过程中检查查询结果
SELECT start_date_time,length_time_interval_s FROM table LIMIT 1 INTO @date1, @length1
是一些数据(即select返回了一个匹配),那个数据匹配(或不匹配)一些其他数据,并根据检查结果做出动作?我需要做类似的事情
- 如果返回数据(找到行)
- 如果变量@date1 和@length1 等于先前设置的@date2 和@length2
- 插入 1
- else(如果变量不等于@date2 和@length2)
- 插入 2
- 如果变量@date1 和@length1 等于先前设置的@date2 和@length2
- else(如果没有返回数据,0行)
- 插入 3
另外,我是否必须预先声明 @date1 和 @length1 或者它们将在选择期间声明?文档中有点不清楚。
【问题讨论】:
-
您已经使用可以轻松转换为 SQL 语句的伪代码回答了您自己的问题。但问题是,您的
date2和length2参数在哪里定义?它们是存储过程参数吗? -
@JonathonOgden 基本上我的问题是我应该写什么 SQL 语句,例如首先检查
-
试试IS NOT NULL。
IF @date1 IS NOT NULL AND @length1 IS NOT NULL THEN. -
快速回答您的问题之一:您不必在 select 语句中使用之前声明变量。
标签: mysql sql stored-procedures