遇到了这个非常古老的问题,试图做同样的事情。可能对原始海报没有太多用处,但已经为下一个人添加了这个答案。
DELIMITER //
DROP PROCEDURE IF EXISTS is_type_of_fruit //
CREATE PROCEDURE is_type_of_fruit (fruit VARCHAR(20))
BEGIN
DECLARE fruit_types ENUM('APPLE','GRAPE','ORANGE');
SET fruit_types = fruit;
SELECT IF(fruit_types = fruit, TRUE, FALSE);
END//
DELIMITER ;
mysql> call is_type_of_fruit('cabbage');
+--------------------------------------+
| IF(fruit_types = fruit, TRUE, FALSE) |
+--------------------------------------+
| 0 |
+--------------------------------------+
1 row in set (0.00 sec)
mysql> call is_type_of_fruit('orange');
+--------------------------------------+
| IF(fruit_types = fruit, TRUE, FALSE) |
+--------------------------------------+
| 1 |
+--------------------------------------+
1 row in set (0.00 sec)
应该提到这个方法不是严格模式友好的,所以如果你想使用它,你必须自己捕捉那个错误。