MySQL-带小int的where条件
我有一个状态为smallint(5)类型的任务表。它有0、1或2个值 当我运行这个查询时,它会给我结果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不同,因此要同时获
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?