MySQL-带小int的where条件

MySQL-带小int的where条件,mysql,string,int,Mysql,String,Int,我有一个状态为smallint(5)类型的任务表。它有0、1或2个值 当我运行这个查询时,它会给我结果 SELECT * FROM `tasks` WHERE `status` = 'EMPTY' 状态中没有空值,那么我如何获得结果?如果值只能是0、1或2,那么这将给出所有状态为0的行: SELECT * FROM tasks WHERE status = 0 如果存在NULL值,则可以通过将WHERE更改为 WHERE status IS NULL NULL与0不同,因此要同时获

我有一个状态为smallint(5)类型的任务表。它有0、1或2个值

当我运行这个查询时,它会给我结果

 SELECT * FROM `tasks` WHERE  `status` = 'EMPTY' 

状态中没有空值,那么我如何获得结果?

如果值只能是
0
1
2
,那么这将给出所有状态为
0
的行:

SELECT *
FROM tasks
WHERE status = 0 
如果存在
NULL
值,则可以通过将
WHERE
更改为

WHERE status IS NULL
NULL
0
不同,因此要同时获得两者,您需要执行以下操作:

WHERE status IS NULL OR status = 0

例如,正在进行Impicit数据转换

select cast('empty' as int); 

+----------------------+
| cast('empty' as int) |
+----------------------+
|                    0 |
+----------------------+
1 row in set, 1 warning (0.00 sec)

很抱歉,这取决于您是否要比较like与like。

为什么它会给我
状态的结果
='EMPTY',其中EMPTY是string,不等于0或1或2如果列是小int,我不确定如何将状态设为EMPTY?您的意思是string'EMPTY'被转换为0?