如何从MySQL数据库中找到ENUM值?

时间:2017-06-13 06:48:34

标签: javascript mysql sql-server database enums

我正在进行示例演示以及我得到的结果。

+-------+----------
 name      status
+-------+----------
 Subha     1
 Rajeeb    2
 Rahul     3
+-------+----------

状态字段的类型是ENUM。

当我试图获得ENUM的结果时:

select name, status+0 from demo;

我的名字和状态为2和3而不是1.我还尝试过IN(0,2)status=2次查询。

3 个答案:

答案 0 :(得分:0)

您可以像这样使用Query

SELECT `name` FROM `demo` WHERE `demo`.`status` = 1

你的名字在status is 0

如果你想获得状态为1和2的数据,你只需添加条件如下:

WHERE (`demo`.`status` = 1 OR  `demo`.`status` = 2)

答案 1 :(得分:0)

Enum值可以使用'单引号进行比较,如:

SELECT `name` FROM `demo` WHERE `demo`.`status` = '1'

SELECT `name` FROM `demo` WHERE `demo`.`status` IN('11, '2')

答案 2 :(得分:0)

原因是,enum的内部数据类型为tinyint(从0开始),当你在where子句中使用status时。 status = 0会使where子句返回false。

看看这个场景:

SELECT `name`, `status` FROM `demo` WHERE `demo`.`status` = 0

这使得where条件不满意并且没有返回结果。

在status = 1或2中,返回满意和相应的行 解决方案:

SELECT `name`, `status` FROM `demo` WHERE `demo`.`status` > -1