gpt4 book ai didi

mysql - 如何检查值是否在 MySQL 枚举中?

转载 作者:行者123 更新时间:2023-11-29 00:29:39 25 4
gpt4 key购买 nike

我正在尝试编写一个存储过程,如果提供的参数在 enumfalse 中,它将选择 true 否则。这是我目前的尝试:

DROP PROCEDURE IF EXISTS is_type_of_fruit;

delimiter //
CREATE PROCEDURE is_type_of_fruit (fruit VARCHAR(20))
BEGIN
DECLARE fruit_types ENUM('APPLE','GRAPE','ORANGE');
SELECT fruit IN(fruit_types);
END//

CALL is_type_of_fruit('APPLE');

看来我无法使用标准的 IN 语法,我通常会使用它来检查某个项目是否在选项列表中。对于 ENUM 类型,我需要使用不同的策略吗?

最佳答案

试图做同样的事情时遇到了这个非常古老的问题。可能对原始海报没有太大用处,但已经为下一个人添加了这个答案。

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)

应该提到这个方法不是严格模式友好的,所以如果你想使用它,你必须自己捕获这个错误。

关于mysql - 如何检查值是否在 MySQL 枚举中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17199496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com