这不适用于我,使用Toad
代替MySQL
。我在Windows上使用XAMPP 1.83
的MySQL 5.5
。MySQL SELECT列FROM表WHERE列IS NULL
我有一个表InstitutionState
定义为VARCHAR(20)
。有些行看起来有这个列“空”,意思是LENGTH(InstitutionState) = 0
。
If I SELECT ... WHERE InstitutionState IS NULL
,我没有得到任何行。
如果我SELECT ... WHERE InstitutionState = ''
,它的工作原理。为什么是这样?
以下是示例数据。
mysql> select InstitutionState, ISNULL(InstitutionState), length(InstitutionState)
-> from institution;
+----------------------+--------------------------+--------------------------+
| InstitutionState | ISNULL(InstitutionState) | length(InstitutionState) |
+----------------------+--------------------------+--------------------------+
| NY | 0 | 2 |
| NY | 0 | 2 |
| NY | 0 | 2 |
| IL | 0 | 2 |
| NC | 0 | 2 |
| TX | 0 | 2 |
| DC | 0 | 2 |
| NY | 0 | 2 |
| CA | 0 | 2 |
| | 0 | 0 |
| KS | 0 | 2 |
| | 0 | 0 |
| NY | 0 | 2 |
| ND | 0 | 2 |
| PA | 0 | 2 |
| WI | 0 | 2 |
| PA | 0 | 2 |
| MD | 0 | 2 |
| IN | 0 | 2 |
| PA | 0 | 2 |
| NE | 0 | 2 |
| ID | 0 | 2 |
| CA | 0 | 2 |
| | 0 | 0 |
| FL | 0 | 2 |
| MO | 0 | 2 |
| | 0 | 0 |
| OH | 0 | 2 |
| IL | 0 | 2 |
| OH | 0 | 2 |
呃,因为'NULL'和'''不一样!'! – Strawberry
除非你使用Oracle ..叹气。 –
因为您的空字符串(“”)作为列值不为NULL,NULL表示没有值全部在(值未定义) – avisheks