Mysql null如果(0,';';)返回null

Mysql null如果(0,';';)返回null,mysql,triggers,nullif,Mysql,Triggers,Nullif,我有一个触发器,可以将tinyint(1)boolean列的空字符串转换为null: CREATE TRIGGER convertToNull BEFORE INSERT ON MyTable FOR EACH ROW SET new.myBoolean = nullif(new.myBoolean, ''); 问题是,它还将0转换为null 我查过: mysql> select nullif(0, ''); +---------------+ | nullif(0, '') | +--

我有一个触发器,可以将
tinyint(1)
boolean列的空字符串转换为
null

CREATE TRIGGER convertToNull
BEFORE INSERT ON MyTable
FOR EACH ROW
SET new.myBoolean = nullif(new.myBoolean, '');
问题是,它还将
0
转换为
null

我查过:

mysql> select nullif(0, '');
+---------------+
| nullif(0, '') |
+---------------+
|          NULL |
+---------------+
1 row in set (0.00 sec)

如何使
null如果
更严格,只有空字符串才会转换为
null

您想做什么?tinyint永远不会是
我希望tinyint为0、1或NULL。因此,我试图在从tsv文件插入行时将空字符串转换为NULL。但它永远不会是空字符串。触发触发器时,从空白到
0
的转换将已经发生。你所尝试的是做不到的。哦,我明白了,我的印象是,在mysql做任何事情之前,触发器就被触发了。