在MySQL存储过程中检查NULL或空变量

Check for NULL or empty variable in a MySQL stored procedure

1
2
3
4
5
6
7
8
9
10
11
12
mysql> delimiter //
mysql> create procedure checkingForNullDemo(Name varchar(20))
  begin
  if Name is NULL OR Name='' then
  select 'Adam Smith';
  else
  select Name;
  end if ;
  end
  //
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ;

情况1

传递NULL时。 使用调用命令调用存储过程

1
mysql> call checkingForNullDemo(NULL);

这将产生以下输出-

1
2
3
4
5
6
7
+------------+
| Adam Smith |
+------------+
| Adam Smith |
+------------+
1 row in set (0.00 sec)
Query OK, 0 rows affected, 1 warning (0.00 sec)

情况二

传递值时。 使用call命令调用存储过程

1
mysql> call checkingForNullDemo('John Doe');

这将产生以下输出-

1
2
3
4
5
6
7
+----------+
| Name   |
+----------+
| John Doe |
+----------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)